Wikipedia:Lua/Modul/TemplateData/Wikitext
Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Seit Anfang 2018 ist es möglich, genauer zu beeinflussen, in welchem Layout (custom formats) die Parameter der Vorlagen in den Quelltext der Seite geschrieben werden sollen.
Ursprünglich gab es nur zwei Formate:
Die hier behandelte Methodik verwendet Schlüsselwörter statt einer zeichenweisen Syntax, um eine benutzerdefinierte Formatierung zu spezifizieren. Dadurch sollen die typischen Standardfälle verständlich abgedeckt werden.
Nicht von MediaWiki angeboten wird die automatische Ausrichtung der Gleichheitszeichen untereinander nach dem längsten Parameternamen.
Spezifikation per JSON
BearbeitenDie eigentliche Spezifikation erfolgt über die Komponente "format"
der JSON-Struktur in TemplateData.
Neben den beiden Schlüsselwörtern inline
und block
ist seit Anfang 2018 dort von MediaWiki eine etwas kryptische Syntax aus Zeichen ermöglicht, mittels derer sich eine individuelle Formatierung etwa hinsichtlich der Verteilung von Leerzeichen erreichen lässt.
Das Lua-Modul generiert diese Syntax aus etwas verständlicheren weiteren Schlüsselwörtern.
inline (alles in einer Zeile)
BearbeitenDies ist die Vorgabe, wenn überhaupt nichts spezifiziert wurde.
Es treten keine Zeilenumbrüche auf; das Gegenstück ist block
.
inline (MediaWiki-Schlüsselwort)
Bearbeiten{{trip|from=London|to=Paris}}
Wirkung | Alles ohne Leerzeichen direkt aufeinander folgend. |
JSON | "format": "inline"
|
Zeichencode | {{_|_=_}}
|
inline half (Halfpipe – sparsame Leerzeichen)
Bearbeiten{{trip |from=London |to=Paris}}
Wirkung | Es soll vor jeder Pipe ein Leerzeichen geben, wodurch der Zeilenumbruch bei längerer Parameterliste gefälliger wird, und es trotzdem kompakt und übersichtlich gruppiert bleibt. |
JSON | "format": "inline half"
|
Zeichencode | {{_ |_=_}}
|
Dies hat Vorrang vor inline grouped
und inline spaced
.
inline grouped (Zuweisung gruppiert)
Bearbeiten{{trip | from=London | to=Paris}}
Wirkung | Jede Pipe ist von Leerzeichen umgeben, die Parameterzuweisungen bleiben kompakt. |
JSON | "format": "inline grouped"
|
Zeichencode | {{_ | _=_}}
|
Dies hat Vorrang vor inline spaced
inline spaced (viele Leerzeichen)
Bearbeiten{{trip | from = London | to = Paris }}
Wirkung | Alle Pipes und Gleichheitszeichen werden von Leerzeichen umgeben. Vor }} steht ebenfalls ein Leerzeichen.
|
JSON | "format": "inline spaced"
|
Zeichencode | {{_ | _ = _ }}
|
inline newlines (eigene Zeile)
BearbeitenBefore {{trip|from=London|to=Paris}} After
Wirkung | Die Einbindung beginnt und endet auf einer eigenen Zeile. |
JSON | "format": "inline newlines"
|
Zeichencode | \n{{_|_=_}}\n
|
Das Schlüsselwort kann mit allen anderen inline
kombiniert werden.
Dies ist hilfreich etwa für Tabellenzeilen-Vorlagen, die in sich kompakt in einer Zeile stehen sollen, aber jede Tabellenzeile auf einer eigenen Quelltextzeile.
block (Parameter in neue Zeilen)
BearbeitenIn diesem Modus steht jede Parameterzuweisung auf einer eigenen Zeile. Das empfiehlt sich vor allem für Vorlagen mit vielen Parametern, etwa Infoboxen oder Zitationen.
Während das Mediawiki-Standard-Schlüsselwort keine Zeilenumbrüche außerhalb der Klammern veranlasst, beginnen und enden bei allen zusätzlichen Schlüsselwörtern die Einbindungen auf neuen Zeilen. Standardmäßig folgt auf das Pipe-Symbol kein Leerzeichen.
Das \n
zu Beginn bewirkt die Einbindung auf einer neuen Zeile; direkt zu Beginn der gesamten Seite wird deshalb aber keine Leerzeile eingefügt.
block (MediaWiki-Schlüsselwort)
BearbeitenNorth{{trip | from = London | to = Paris }}South
Die Einbindung beginnt und endet ohne Zeilenumbruch.
Wirkung |
|
JSON | "format": "block"
|
Zeichencode | {{_\n| _ = _\n}}
|
block newlines (neue Zeilen)
BearbeitenNorth {{trip |from = London |to = Paris }} South
Wirkung | Die Einbindung beginnt und endet auf einer eigenen Zeile. Innere Struktur ähnlich wie Mediawiki-Standard-Schlüsselwort, jedoch zunächst ohne Leerzeichen nach der Pipe. |
JSON | "format": "block newlines"
|
Zeichencode | \n{{_\n|_ = _\n}}\n
|
Das Schlüsselwort newlines
muss ansonsten nicht gesondert angegeben werden, weil dies immer mitveranlasst wird.
block indent (eingerückt)
BearbeitenNorth {{trip |from = London |to = Paris }} South
Wirkung | Vor jede Pipe soll am Zeilenanfang ein Leerzeichen eingefügt werden. Die restliche Formatierung wird dadurch nicht beeinflusst. |
JSON | "format": "block indent"
|
Zeichencode | \n{{_\n |_ = _\n}}\n
|
Das Schlüsselwort kann mit allen anderen block
kombiniert werden.
block compressed (komprimiert)
BearbeitenNorth {{trip |from=London |to=Paris}} South
Wirkung | Parameterzuweisung ohne Leerzeichen direkt aufeinander folgend. }} folgt auf die letzte Zuweisung.
|
JSON | "format": "block compressed"
|
Zeichencode | \n{{_\n|_=_}}\n
|
Die Schlüsselwörter indent
und last
können zusätzlich angegeben werden.
block align (Gleichheitszeichen ausgerichtet)
BearbeitenNorth {{trip |from = London |to = Paris }} South
Wirkung | Gleichheitszeichen werden so untereinander angeordnet, dass der längste Parametername noch mit einem Leerzeichen vor dem Gleichheitszeichen erscheint. Veraltete (deprecated) sowie Aliasnamen werden bei Ermittlung der maximalen Länge nicht berücksichtigt. |
JSON | "format": "block align"
|
Zeichencode | \n{{_\n|____ = _\n}}\n
|
Dies hat Vorrang vor block after
und block dense
. Die Schlüsselwörter indent
und last
können zusätzlich angegeben werden.
block align nnn (Gleichheitszeichen an bestimmter Stelle ausgerichtet)
BearbeitenNorth {{trip |from = London |to = Paris }} South
Wirkung | Gleichheitszeichen werden so untereinander angeordnet, dass ein Parametername mit der angegebenen Länge noch mit einem Leerzeichen vor dem Gleichheitszeichen erscheint. Statt „9999 “ ist die gewünschte Zahl anzugeben, etwa 6 , jedoch maximal 99.
|
JSON | "format": "block align 9999"
|
Zeichencode | \n{{_\n|______ = _\n}}\n
|
Dies ist eine Erweiterung von block align
block after (Leerzeichen nur nach Gleichheitszeichen)
BearbeitenNorth {{trip |from= London |to= Paris }} South
Wirkung | Vor dem Gleichheitszeichen soll kein Leerzeichen erscheinen, aber danach. |
JSON | "format": "block after"
|
Zeichencode | \n{{_\n|_= _\n}}\n
|
Dies hat Vorrang vor block dense
. Die Schlüsselwörter indent
und last
können zusätzlich angegeben werden.
block dense (kein Leerzeichen am Gleichheitszeichen)
BearbeitenNorth {{trip |from=London |to=Paris }} South
Wirkung | Weder vor noch nach dem Gleichheitszeichen soll ein Leerzeichen erscheinen. |
JSON | "format": "block dense"
|
Zeichencode | \n{{_\n|_=_\n}}\n
|
Die Wirkung würde block compressed
entsprechen, erlaubt jedoch block lead
.
block lead (Leerzeichen nach Pipe)
BearbeitenNorth {{trip | from = London | to = Paris }} South
Wirkung | Nach dem Pipe-Symbol | soll ein Leerzeichen eingefügt werden.
|
JSON | "format": "block lead"
|
Zeichencode | \n{{_\n| _ = _\n}}\n
|
Bei block compressed
kann das keine Wirkung haben.
block last (Position des }}
-Abschluss)
Bearbeiten
Die Position des abschließenden }}
soll geändert werden:
- Bei
block compressed
–}}
steht auf einer eigenen Zeile. - Sonst –
}}
wird an die letzte Parameterzuweisung angehängt.
Sonderzeichen in der Vorlageneinbindung
BearbeitenWenn die Vorlage:TemplateData in ihrem Parameter JSON=
den Code erhält, würden die Pipe-Symbole und }}
die Vorlagensyntax stören. Dann kann jeweils das Pipe-Symbol durch |
und eine schließende Klammer durch }
dargestellt werden.
Äquivalente
BearbeitenDie nachstehende Tabelle ermöglicht eine Übersetzung eines Zeichencode in Schlüsselwörter und veranschaulicht die Bildungsprinzipien.
Zeichencode | Schlüsselwörter |
---|---|
{{_|_=_}}
|
inline |
{{_ |_=_}}
|
inline half |
{{_ | _=_}}
|
inline grouped |
{{_ | _ = _ }}
|
inline spaced |
\n{{_|_=_}}\n
|
inline newlines |
{{_\n| _ = _\n}}
|
block |
\n{{_\n|_ = _\n}}\n
|
block newlines |
\n{{_\n |_ = _\n}}\n
|
block indent |
\n{{_\n|_=_}}\n
|
block compressed block dense last |
\n{{_\n |_=_}}\n
|
block indent compressed |
\n{{_\n|_=_\n}}\n
|
block compressed last |
\n{{_\n |_=_\n}}\n
|
block indent compressed last |
\n{{_\n|_= _\n}}\n
|
block after |
\n{{_\n|_=_\n}}\n
|
block dense |
\n{{_\n |_= _\n}}\n
|
block indent after |
\n{{_\n |_= _ }}\n
|
block indent after last |
\n{{_\n | _= _\n}}\n
|
block indent lead after |
\n{{_\n | _= _ }}\n
|
block indent lead after last |
\n{{_\n |_=_\n}}\n
|
block indent dense |
\n{{_\n | _=_\n}}\n
|
block indent lead dense |
\n{{_\n| _= _\n}}\n
|
block lead after |
\n{{_\n| _=_\n}}\n
|
block lead dense |