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

Bearbeiten

Die 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)

Bearbeiten

Dies 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)

Bearbeiten
Before
{{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)

Bearbeiten

In 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)

Bearbeiten
North{{trip
| from = London
| to = Paris
}}South

Die Einbindung beginnt und endet ohne Zeilenumbruch.

Wirkung
  • Auf alle Pipes folgt ein Leerzeichen, Gleichheitszeichen werden von Leerzeichen umgeben.
  • }} beginnt auf einer eigenen Zeile.
JSON "format": "block"
Zeichencode {{_\n| _ = _\n}}

block newlines (neue Zeilen)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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)

Bearbeiten
North
{{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

Bearbeiten

Wenn 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

Bearbeiten

Die 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

Weitere Informationen

Bearbeiten