Hallo,
aus gegebenem Anlass habe ich im Wiki in der common.js eine kleine Ergänzung durchgeführt, die Links auf Überschriften erleichtern kann.
Problem sind
- Überschriften, die lang sind
- Überschriften mit Zeichen, die in URLs nicht gestattet sind
- Überschriften, die sich ändern 😲
Das Wiki kennt bereits die Vorlage {{anchor|id}}, mit der ein Dummy-Span erzeugt werden kann, der eine ID trägt. Aber unser Permalink-Feature kennt solche Anker nicht.
Jetzt schon:
=={{anchor|foo}} Eine langatmige (und weitschweifige) Überschrift ==
bekommt jetzt auf dem Permalink-Icon #foo als Link, und nicht mehr dem Bandwurm, in dem Klammern und Ü maskiert werden müssen.
De facto hat die Überschrift jetzt zwei IDs. Ich kann und will es Mediawiki nicht abgewöhnen, den Überschriftentext als id des Überschriftenelements zu generieren. Ähhh - ok, das auch nicht. Mediawiki generiert ohne die {{anchor}}-Vorlage sowas:
<h3>
<span class="mw-heading"
id="Eine langatmige .28und weitschweifige .29 .C3.9Cberschrift">
Eine langatmige (und weitschweifige) Überschrift
</span>
<span class="mw-editsection">...</span>
</h3>
In .mw-editsection ist der Link auf die "Section bearbeiten" Funktion.
Die {{anchor}}-Vorlage fügt ein `<span id="foo"></span> am Anfang des .mw-heading Span ein.
Im common.js suche ich innerhalb von .mw-heading nach span[id], und wenn's da ist, verwende ich diese ID für den Permalink statt der .mw-heading id.
Jetzt weiß ich nur eins nicht. Der Permalink-Generator erzeugt außer dem Link-Symbol auch einen visuell versteckten Text, der der verlinkten URL entspricht. Hier sieht das z.B. jetzt so aus:
<h3>
<span class="mw-headline" id="String.prototype.anchor.28name.29">
<span id="string.anchor"></span>
String.prototype.anchor(name)
</span>
<a href="/wiki/JavaScript/Deprecated#string.anchor" class="locale-anchor">
<span>/wiki/JavaScript/Deprecated#string.anchor</span>
</a>
<span class="mw-editsection">...</span>
</h3>
Der Span in der siebten Zeile ist visuell versteckt und enthält die Permalink-URL - damit ein Screenreader "Link: /wiki/bla/fasel" vorliest, nehme ich an. Das war auch ohne meine Änderung so, nur entsprach die Permalink-URL da noch dem Überschriften-Inhalt.
Was enthält dieser Span richtigerweise? Die Permalink-URL oder die URL für die Heading-ID? Oder etwas ganz anderes, das auf die Permalink-Eigenschaft dieses Links hinweist? Also vielleicht "<span>Permalink auf diesen Abschnitt</span>"?
Rolf
sumpsi - posui - obstruxi