Hilfe:Parserfunktionen

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Diese Hilfeseite beschreibt die vom Parser der MediaWiki-Software sofort ausgewerteten Funktionen.

Im Index ist eine Liste aller in der deutschsprachigen Wikipedia und darüber hinaus definierten Parserfunktionen zusammengestellt.

Allgemeines

Parserfunktionen sind Konstrukte im Wikitext, die in einen teils recht statischen, teils sehr dynamischen anderen Text umgewandelt werden. Sie sind in doppelte geschweifte Klammern {{}} eingeschlossen.

In enzyklopädischen Artikeln ist eine direkte Verwendung in der Regel unerwünscht, abgesehen von einigen verbreiteten Vertretern wie SEITENTITEL oder dem Sortierschlüssel von Kategorien. Ein Grund dafür ist, dass die zugehörige Dokumentation (anders als bei Vorlagen) nicht unmittelbar erreichbar ist.

In erster Linie werden Parserfunktionen zur Programmierung von Vorlagen verwendet; auch auf Funktionsseiten usw. außerhalb des enzyklopädischen Bereichs.

Jedes Wiki kann gewissermaßen seine eigenen „Funktionen“ dieser Art herstellen; das sind gerade die Vorlagen.

Syntax und Bezeichner

Die Einbindung einer Parserfunktion ohne Parameter in den Wikitext ist syntaktisch zunächst nicht von einer Vorlage zu unterscheiden; siehe Seiten einbinden.

  • {{irgendwas}} kann beides sein.
  • Um dies zu vermeiden und eindeutig zu machen, haben pfiffige Entwickler dem Bezeichner der jeweiligen Parserfunktion ein # vorangestellt.[1]
    • Das ist unmöglich für eine Vorlage.
    • Allerdings sind bei weitem nicht alle Parserfunktionen mit derartigen Bezeichnern ausgestattet worden.
  • Falls der unerwünschte Fall auftreten soll, dass eine Vorlage den gleichen Bezeichner wie eine Parserfunktion trägt, wäre {{Vorlage:irgendwas}} eindeutig eine Vorlage.
    • Bei gleichen Namen hat ansonsten die Parserfunktion immer Vorrang; es wird bei ihrem Antreffen nicht mehr nach einbindbaren Seiten gesucht.
    • msg: wäre eine weitere Möglichkeit, um Konflikte aufzulösen.
  • Beim Bezeichner einer Parserfunktion hat die Groß- und Kleinschreibung keine Bedeutung.
    • Das ist anders als bei Vorlagen, wo dies nur für einen ersten Buchstaben gilt.
    • Für quasistatische, eher konstante Werte werden meist Großbuchstaben benutzt; steht ein funktionaler Aspekt mit Parametern im Vordergrund dann eher Kleinbuchstaben.
  • Beim Bezeichner einer Parserfunktion ist ein Unterstreichungsstrich  _ signifikant, also nicht gleichbedeutend mit einem Leerzeichen usw.
  • Bei einer Parserfunktion mit Parametern wird der erste Parameterwert durch einen Doppelpunkt : abgetrennt.
    • Daran lässt sich ggf. der Unterschied zu einer Vorlage erkennen, für die ein solcher Doppelpunkt ungewöhnlich wäre, obwohl syntaktisch möglich.[2]
    • Bei weiteren Parametern ist dies ein Pipe-Symbol | genau wie bei Vorlagen.
    • Vor einem Doppelpunkt darf kein Leerzeichen stehen.
    • Wenn ein Pflichtparameter erwartet wird, würde die Funktion ohne Doppelpunkt nicht als solche erkannt werden.
    • Ein leerer Parameterwert ist unzulässig; der Doppelpunkt darf nicht das letzte nicht-leere Zeichen sein.
  • Zu einigen Bezeichnern gibt es deutschsprachige Lokalisierungen, die eher dort verwendet werden, wo Vorlagenprogrammierung durch Autoren von Artikeln selbst erfolgt. In fortgeschritteneren Bereichen sind auch für den globalen Austausch die generischen, englischsprachigen Bezeichner üblich. Das erleichtert dann auch die Suche in Quelltexten.

Parameterwerte

Für Parameter-Bezeichner, deren Syntax und ihre Werte gelten die analogen Regeln wie bei Vorlagen.

  • Der erste Parameter wird jedoch mittels eines Doppelpunkts abgetrennt, alle weiteren dann mittels | (Pipe-Symbol).
  • Parserfunktionen ganz ohne Parameter oder ohne aktuelle Angabe eines Parameters oder aber mit sich selten änderndem Resultat werden häufig nicht ganz korrekt als „Variablen“ bezeichnet, weil in den frühen Jahren das Konzept nicht wirklich durchschaut wurde.
  • Hinsichtlich Trimmung, also führende oder schließende einfache Leerzeichen oder Zeilenumbrüche um Parameterwerte, werden diese von den allermeisten Parserfunktionen ignoriert.
    • Eine wesentliche Ausnahme ist #invoke, auf die analoge Regeln wie bei Vorlagen angewendet werden.
  • Pipes innerhalb von Verlinkungen, Medieneinbindungen oder Vorlageneinbindungen werden vor Auswertung der Parameterliste von den umgebenden Syntaxelementen konsumiert.
  • HTML-Kommentare werden vor der Weitergabe eliminiert.
  • Andere Seiteneinbindungen (Vorlagen) und Parserfunktionen werden vor der Weitergabe ausgewertet.
  • Ein fehlender Pflichtparameters kann zur Interpretation des Bezeichners als Vorlage führen, falls dieser Bezeichner nicht mit # beginnt.
  • Bei Funktionen, die keinen Parameter erwarten, darf auch keiner angegeben werden.

Substitution

Eine Substitution von Parserfunktionen ist analog derer von Vorlagen und anderer eingebundener Seiten möglich.

Allerdings trifft das ggf. nur für solche Ergebnisse zu, die nicht von externen Gegebenheiten abhängen und keine Außenwirkung haben sollen.

Ergebnis

Zeichen Entity
; &#59;
: :
* *
# #
Leer­zeichen  
Zeilen­umbruch 

  • Das Ergebnis einer Parserfunktion ist in aller Regel „getrimmt“, also ohne führende oder schließende einfache Leerzeichen oder Zeilenumbrüche.
  • Dem Ergebnis einer Parserfunktion wird aber genauso wie bei Vorlagen ein Zeilenumbruch vorangestellt, falls dieses netto mit ; : * # {| beginnt.
    • Das zielte darauf ab, damit Aufzählungen und Listen und Tabellen zu kennzeichnen. Andernfalls wäre dies wegen der Trimmung nicht möglich.
    • Soll ein sichtbares derartiges Zeichen erscheinen, muss der Beginn des Ergebnisses zuvor in ein entsprechendes Entitiy gewandelt werden (siehe Tabelle rechts).

Einzelbeschreibungen

Index – Liste aller Einzelfunktionen

Thematisch gruppiert auf den Unterseiten:

Alles auf einer Seite.

Geschichte und Herkunft

Bereits in den allerersten Jahren wurden Parserfunktionen definiert, die Informationen über das Wiki oder die aktuelle Seite zugänglich machten.

  • Das wurde dann ausgebaut mit Parametern.
  • Mitte April 2006 wurden die beiden Funktionen #if: und #switch: eingeführt. Erst dadurch wurde eine Programmierung im eigentlichen Sinn möglich, weil erst damit eine Auswertung von Parameterwerten oder anderer Parserfunktionen eine Steuerung des Verhaltens bewirken konnte.
  • Die meisten Parserfunktionen gehören zum anerkannten „Kern“ und sind damit auf allen Wikis der WMF und auch außerhalb verfügbar.
    • Einzelne Parserfunktionen werden durch bestimmte „Extensionen“ definiert.
    • Manche Extensionen sind auf allen Wikis der WMF aktiviert; einige nur auf bestimmten, etwa zentralen mehrsprachigen usw.
    • Auf privaten Wikis müssen entsprechende Extensionen üblicherweise gesondert installiert werden.
    • Für eine Wikipedia ist es in der Regel unerheblich, ob eine Parserfunktion zum momentanen Kern oder zu einer Extension gehört.
  • Eine Liste aller durch Erweiterungen (zusätzlich zum MediaWiki-Kern) eingebrachter Parserfunktionen ist auf Spezial:Version unter „Parsererweiterungen (Funktionen)“ aufgelistet (nur generische Namen).

Schalterfunktionen

Im Prinzip kann jede „Schalterfunktion“ __XYZ__ genauso zu einer Parserfunktion {{#xyz}} migriert werden.

  • Damit wäre die Beschreibung der Wikisyntax konsistenter und die Ausnahmen für das Unterstreichungsstrich-Format könnten perspektivisch beseitigt werden.
  • Dies war im ersten Jahrzehnt auch vorgeschlagen worden; wurde jedoch abgelehnt wegen der Befürchtung einer Namenskollision in den Wikis mit einer Vorlage:XYZ.
  • Durch den Parserfunktionen einheitlich vorangestelltes # gibt es jedoch keine Namenskonflikte mit eingebundenen Seiten.

Schalterfunktionen stammen aus der frühen Frühzeit der Wikisyntax; dieses Konzept wurde praktisch nicht weiter verfolgt.

Magische Wörter

Magische Wörter“ im eigentlichen Sinn werden nicht an der syntaktischen Notation durch Unterstreichungsstriche oder Klammern erkannt, sondern an einer bestimmten Zeichenkette mitten im Text.

  • Das ist für eine syntaktische Beschreibung, die effiziente Interpretation durch Software wie auch Menschen hochproblematisch.
  • Bei den URL ist nachvollziehbar, dass durch einfaches Einstreuen in den Quelltext bereits eine automatische Verlinkung ausgelöst werden soll.
    • Problematisch ist hier jedoch, ob sich anschließende Satzzeichen (Punkt, Komma, Fragezeichen, Ausrufezeichen, Semikolon) zur wirksamen Adresse zählen sollen oder nicht (sie werden nicht in die URL einbezogen).

Magische Wörter stammen aus der frühen Frühzeit der Wikisyntax; dieses Konzept wurde nicht weiter verfolgt.

Anmerkungen

  1. Siehe phab:T204370 Behavior switch/magic word uniformity
  2. Falls wie bei Vorlage:Info ISO-3166-2:CH tatsächlich Teil des Namens.