Rolf B: News im Wiki

Beitrag lesen

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