Vorlage:Anker

aus Wikipedia, der freien Enzyklopädie


Linkziel(e) zu einem Abschnitt oder einem Element innerhalb der aktuellen Wiki-Seite vereinbaren

Vorlagenparameter

Anker-11
Fragmentbezeichner mit Syntaxtest
Anker-22
Weiterer Fragmentbezeichner (mit Syntaxtest)
Anker-33
Weiterer Fragmentbezeichner (mit Syntaxtest)
ungeprüfter Anker 1-1
Fragmentbezeichner ohne Syntaxtest
ungeprüfter Anker 2-2
Weiterer Fragmentbezeichner ohne Syntaxtest
ungeprüfter Anker 3-3
Weiterer Fragmentbezeichner ohne Syntaxtest
Anker-44
Weiterer Fragmentbezeichner (mit Syntaxtest)
Anker-55
Weiterer Fragmentbezeichner (mit Syntaxtest)
Anker-66
Weiterer Fragmentbezeichner (mit Syntaxtest)
ungeprüfter Anker x1x1
Weiterer Fragmentbezeichner ohne Syntaxtest (nicht mehr erwünschtes Namensschema, gelegentlich durch -1 usw. ersetzen)

Linkziel(e) zu einem Abschnitt oder einem Element innerhalb der aktuellen Wiki-Seite vereinbaren

Vorlagenparameter

Diese Vorlage bevorzugt Inline-Formatierung von Parametern.

ParameterBeschreibungTypStatus
Anker-11

Fragmentbezeichner mit Syntaxtest

Zeilevorgeschlagen
Anker-22

Weiterer Fragmentbezeichner (mit Syntaxtest)

Zeileoptional
Anker-33

Weiterer Fragmentbezeichner (mit Syntaxtest)

Zeileoptional
ungeprüfter Anker 1-1

Fragmentbezeichner ohne Syntaxtest

Zeileoptional
ungeprüfter Anker 2-2

Weiterer Fragmentbezeichner ohne Syntaxtest

Zeileoptional
ungeprüfter Anker 3-3

Weiterer Fragmentbezeichner ohne Syntaxtest

Zeileoptional
Anker-44

Weiterer Fragmentbezeichner (mit Syntaxtest)

Zeileoptional
Anker-55

Weiterer Fragmentbezeichner (mit Syntaxtest)

Zeileoptional
Anker-66

Weiterer Fragmentbezeichner (mit Syntaxtest)

Zeileoptional
ungeprüfter Anker x1x1

Weiterer Fragmentbezeichner ohne Syntaxtest (nicht mehr erwünschtes Namensschema, gelegentlich durch -1 usw. ersetzen)

Zeileoptional

Kopiervorlage

{{Anker|}}

Verwendung

Es ist öfters sinnvoll, zusätzlich zur momentanen Überschrift auf bestimmte Stellen einer längeren Wiki-Seite zu verlinken:

  1. Die bisherige Überschrift soll sich ändern, alte Verlinkungen sollen aber weiterhin funktionieren.
  2. Gleiche Überschriften kommen mehrfach vor, etwa in einer strukturierten Systematik.
  3. Größere Elemente haben überhaupt keine Überschrift, die im Inhaltsverzeichnis erscheint.

Hier kann man einen Fragmentbezeichner weitgehend frei wählen. Er kann aber kein Pipe-Symbol »|« oder Anführungszeichen »"« enthalten, sollte nicht mit einer Ziffer, sondern mit einem Buchstaben beginnen und sollte auch kein Doppelkreuz »#« enthalten. Generell ist alles sinnvoll, was auch als Lemma möglich ist. Der Name darf sich nicht mit einer vorhandenen Überschrift überschneiden, mit einem anderen Anker oder den MediaWiki-seitigen Bezeichnern natürlich auch nicht. Der Bezeichner sollte „sprechend“, also selbsterklärend, sowie kurz und eindeutig sein. Es ist pfiffig, als Bezeichner Wörter oder Konstrukte zu wählen, die sprachlich als zukünftige Überschriften nicht in Frage kommen. Groß- und Kleinschreibung sind signifikant.

Beispiel: Der Link [[Foo#bar]] führt zum Anker {{Anker|bar}} im Artikel „Foo“.

Es können auch mehrere (beliebig viele) Anker mit dieser Vorlage angegeben werden, und zwar über {{Anker|Name1|Name2|Name3|…}}.

Der Bezeichner ist für die Leser der Seite kaum sichtbar, könnte von aufmerksamen Betrachtern allerdings in der URL gesehen werden.

Die Browser sollen bei Unterschieden in Groß- und Kleinschreibung von unterschiedlichen Sprungzielen ausgehen; mehrere Fragmentbezeichner in der Seite sollten sich jedoch nicht ausschließlich durch Groß- und Kleinschreibung unterscheiden, auch nicht durch unsichtbare Nuancen in typografischen Details. Wie in jedem Wikilink sind Leerzeichen, mehrfache Leerzeichen und Unterstreichungsstrich _ gleichwertig.

Alternative Namen für Überschriften

Mit Hilfe von Ankern kann vermieden werden, dass – wenn sich die Überschrift des Abschnitts ändert – alle Links auf diesen Abschnitt angepasst werden müssen. Diese Vorlage ist aber nicht dazu gedacht, Tipparbeit beim Verlinken zu sparen. Deshalb sollte bei neu gesetzten Links immer gleich auf die richtige Abschnittsüberschrift verlinkt werden, wenn diese einfach und voraussichtlich beständig formuliert ist.

Falls der Anker einen alternativen Namen für eine Überschrift liefern soll, ist der beste Ort, die Vorlage einzubauen, innerhalb der Überschrift selbst:

== {{Anker|Name1|Name2}} Überschrift ==

Zu den Gründen siehe Hilfe:Überschrift.

Einschränkungen

Die Anwendung innerhalb von Überschriften in der Form

== {{Anker|Bar}} Bar ==

(d. h. gleicher Text sowohl in Vorlage wie Überschrift selbst), ist nicht nur überflüssig, sondern ist unzulässig und zu vermeiden: Technischer Hintergrund ist, dass Überschriften automatisch einen Anker mit einer HTML-ID erzeugen (hier „Bar“), die auf der ganzen Seite eindeutig (daher einmalig) sein muss.[1] Da bei Anwendung der Vorlage diese ID doppelt vergeben wird, führt dies zu ungültigem HTML und möglichen Inkonsistenzen in der Navigation.

Aus dem gleichen Grund sind Vorlageneinbindungen mit einem Wert identisch zu einer schon vorhandenen Überschrift unzulässig; es wird in der Regel die erste Fundstelle angesprungen.

Des Weiteren gelten daher für die hier erzeugten Bezeichner die gleichen Einschränkungen wie für HTML-IDs.[2]

Eine inoffizielle Liste von (MediaWiki) bereits vergebenen IDs (daher unzulässigen Namen, ohne Anspruch auf Vollständigkeit/Aktualität) – als Anhaltspunkt – befindet sich in der englischsprachigen Wikipedia: en:Wikipedia:Catalogue of CSS classes #IDs

Tabellen

Innerhalb von Tabellen sollten keine Anker mittels dieser Vorlage gesetzt werden.

  • Je nach Tabellenlayout kann das dazu führen, dass genau auf die fragliche Textzeile positioniert wird. Ist diese jedoch nicht oben bündig ausgerichtet, kann es leicht sein, dass von ihren Nachbarzellen die oberen Zeilen nicht im Sichtbereich erscheinen, weil dieser am tiefer liegenden Anker ausgerichtet wurde.

Besser ist hier folgende Syntax:

|- id="MeinSprungZiel"
| Text der ersten Zelle
| Text der zweiten Zelle

Bei id="…" wird der Name des Sprungziels angegeben; das bezieht sich dann auf die gesamte Tabellenzeile, und der Browser „weiß“ dann, dass er diese auch komplett anzeigen soll, also etwa auch mit den Rahmenlinien.

Generell ist die Vorlage dafür vorgesehen, um im normalen Text zunächst ein Dummy-Element zu generieren, und dieses dann mit dem Fragmentbezeichner auszustatten. Wo hingegen bereits ein HTML-Element oder Tabellensyntax vorhanden ist, wäre es pfiffiger, dieses direkt über id="…" mit dem Bezeichner zu versehen.

Zwei Dinge sind jedoch zu beachten:

  • Innerhalb einer ID darf kein Leerzeichen vorkommen, stattdessen ist der Unterstrich zu benutzen. Die Vorlage führt die Ersetzung automatisch durch, bei direkter Eintragung muss man selbst darauf achten. In Wikisyntax kann das Sprungziel trotzdem mit Leerzeichen angegeben werden.
  • Je Tabellenelement darf nur eine ID vorkommen. Wenn in seltenen Fällen mehr ID benötigt werden, kann man unter Umständen eine ID der Tabellenzeile und eine direkt einer Zelle zuordnen, sonst bleibt nur die Nutzung der Vorlage übrig.

Syntax:

|- id="ein_Sprungziel_mit_Unterstrich"
| id="anderes_Sprungziel" | Text der ersten Zelle
| Text der zweiten Zelle

Wenn dieser Tabellencode im Artikel Beispiel zu finden wäre, könnte man mit diesen Wikilinks direkt auf die Sprungziele verweisen: [[Beispiel#ein Sprungziel mit Unterstrich]] und [[Beispiel#anderes Sprungziel]].

Syntaxprüfung

Seit Ende 2019 werden die Fragmentbezeichner auf Robustheit und möglicherweise überflüssige Wikisyntax überprüft.

  • Mit -1= oder -2= usw. (zuvor auch: x1= oder x2=) lässt sich für alle konfliktträchtigen Bezeichner die Syntaxprüfung vorläufig zurückzustellen.
Nicht gern gesehen
Ziffer am Anfang; könnte in mancher externen Nutzung zu Problemen führen.
Wird jedoch geduldet, wo es nun mal so ist; lieber vermeiden.
Löst trotzdem Fehlermeldung aus.
Besser umgehen, indem zur Gliederung innerhalb der Seite ggf. §, Nr oder Band vorangestellt wird: §1 Nr1 Art1 (bei Jahreszahlen schwieriger)
Mutmaßliche Fehler
Wikisyntax im Bezeichner, also Wikilinks und auch HTML-Codes oder Entities, machen die erforderliche URL unlesbar und würden nicht sinnvoll angesprochen werden können.
Wenn die MediaWiki-Software aus einer Abschnittsüberschrift einen Bezeichner bildet, wird diese auch auf den reinen Text reduziert und alles Markup entfällt.
Ein Wikilink auf einen Fragmentbezeichner, der seinerseits mit eckigen Klammern oder Pipes gebildet wird, ist kaum noch sinnvoll zu notieren.
Ungeeignete Bezeichner
Syntaktische Schwierigkeiten entstehen, wenn eines der folgenden Zeichen enthalten ist: # % < > und die Begrenzer ' "
Absolut verbotene Bezeichner
Das sind alle, zu denen es in der Wiki-Seite bereits ein gleichnamiges Sprungziel gibt (oder damit zu rechnen wäre). Der Browser springt immer nur zum allerersten gefundenen, und das HTML-Dokument wird fehlerhaft.
Das wären alle gleichnamigen Überschriften und anderen Anker in unserem Text.
Außerdem alle Bezeichner in der Wiki-Software – etwa #top. Das sind:
  • Alles mit mw- und wp beginnend gehört der globalen Software.
  • antispam-container, bodyContent, catlinks, centralNotice, content, contentSub, contentSub2, editform, editpage-copywarn, firstHeading, footer, fundraising, jump-to-nav, language-settings-dialog, languagesettings-panels, page-actions, siteNotice, siteSub, toc, toctitle, top, wikiPreview
  • Alle Elemente des Desktop-Portalrahmens, wie beim GUI beschrieben, bzw. das dafür verwendete Namensformat.

Anzahl der Parameter

Seit Ende 2019 gibt es keine Begrenzung der Anzahl der Sprungziele mehr.

Beispiele

In Alsfeld soll der Abschnitt Bauwerke, in welchem das Rathaus erwähnt wird, verlinkt werden.

1. In der Überschrift der Bauwerke den Anker-Baustein einfügen:

=== {{Anker|Rathaus}} Bauwerke ===

2. Jetzt kann man

[[Alsfeld#Rathaus|Rathaus Alsfeld]]

verlinken; das sieht so aus: Rathaus Alsfeld

„Anker 2.0“

In der ersten Version (2006–2009) war es noch erforderlich gewesen, im Link vor den Ankernamen Anker: zu setzen: [[foo#Anker:bar]]. Das erwies sich jedoch bald als unpraktisch; sowohl bei der Verlinkung, aber vor allem auch, weil man für eine anders formulierte Abschnittsüberschrift keine Anker mit ihrem bisherigen Text setzen konnte, sondern sämtliche Verlinkungen aktualisieren musste.

Die ursprünglichen Verweise, die das vorgesetzte Anker: verwendeten, wurden zunächst zusätzlich unterstützt: [[foo#Anker:bar]] funktionierte noch in einer Übergangsphase.

Bis Sommer 2017 waren alle Bestandsverlinkungen im ANR und auf aktiven Projektseiten auf die einfachere Praxis umgestellt worden; Ende 2017 wurde die mittlerweile unnötige Duplizierung von Elementen im HTML-Dokument aufgegeben.

Eine weitere Umstellung ist mittlerweile einbezogen: Historisch waren früher Umlaute und Sonderzeichen durch die MediaWiki-Software nach einem anderen Verfahren kodiert worden als das heutzutage (seit HTML5) möglich und üblich ist. Die Vorlage generiert zur Kompatibilität mit alten externen Lesezeichen und Dokumenten zusätzlich zur heutigen vereinfachten Form auch die frühere Notation („Punkt-Encoding“), falls dies zu Unterschieden führt, bis nicht mehr mit nennenswertem Aufkommen alter Sprungziele zu rechnen ist.

Hilfsmittel

Das Benutzerskript fragmentAnchors@PerfektesChaos analysiert eine Wiki-Seite. Ungeeignete Sprungziele, doppelt vergebene und fehlende innere Verlinkungen werden aufgelistet. Bei den normalerweise versteckten Sprungmarkierungen wird eine Möglichkeit angeboten, sie sichtbar zu machen und sie einfach zu kopieren.

Andere Sprachversionen – Template:Anchor

In der englischsprachigen Wikipedia gibt es eine Vorlage en:Template:Anchor.

  • Zur Kompatibilität unterstützen wir insbesondere zur anschließenden Migration eine Vorlage:Anchor als Weiterleitung, bis die Einbindung ggf. durch deutschsprachigen Namen ersetzt oder in einem anderssprachigen Wiki einkopiert wurde.

Anmerkungen

Lua

Verwendetes Modul: Vorlage:Anker