|
|
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| {{WIP}}
| | Eine <b>Vorlage</b> ist eine Wikiseite, die in anderen Wikiseiten auf eine der folgenden Arten verwendet werden kann. |
| | |
| == Erstellung ==
| |
| | |
| Eine Vorlage ist durch ein vorangestelltes "Vorlage:" (z. B. "[[Vorlage:Text]]") gekennzeichnet und kann wie jede andere Wikiseite erstellt werden. | |
| | |
| == Verwendung ==
| |
| | |
| Vorlagen sind Wikiseiten, welche in anderen Wikiseiten auf folgende Arten verwendet werden können.
| |
|
| |
|
| {| class=wiki | | {| class=wiki |
| |- | | |- |
| | <tt><nowiki>[[Template:Name]]</nowiki><br><nowiki>[[Vorlage:Name]]</nowiki></tt> || Erzeugt einen Hyperlink zur Vorlage "Name". | | | <tt><nowiki>[[Template:Name]]</nowiki><br><nowiki>[[Vorlage:Name]]</nowiki></tt> || Erzeugt einen [[Hyperlink]] zur Vorlage "Name". |
| |- | | |- |
| | <tt><nowiki>{{Name}}</nowiki></tt> || Der Inhalt der Vorlage "Name" wird erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird. Im Bearbeitungsfenster ist stets nur "<nowiki>{{Name}}</nowiki>" zu sehen. | | | <tt><nowiki>{{Name}}</nowiki></tt> || Der Inhalt der Vorlage "Name" wird erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird. Im Bearbeitungsfenster ist stets nur "<nowiki>{{Name}}</nowiki>" zu sehen. |
Zeile 23: |
Zeile 15: |
|
| |
|
| Im Fall eines Namenskonflikts mit einer Variable (z. B. "Vorlage:Ns:3" und "Vorlage:PAGENAME") kann ":Vorlage:" verwendet werden, um deutlich zu machen, dass die Vorlage gemeint ist: | | Im Fall eines Namenskonflikts mit einer Variable (z. B. "Vorlage:Ns:3" und "Vorlage:PAGENAME") kann ":Vorlage:" verwendet werden, um deutlich zu machen, dass die Vorlage gemeint ist: |
| | |
| * <nowiki>{{Ns:3}}</nowiki> bzw. <nowiki>{{PAGENAME}}</nowiki> zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite) | | * <nowiki>{{Ns:3}}</nowiki> bzw. <nowiki>{{PAGENAME}}</nowiki> zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite) |
| * <nowiki>{{:Vorlage:Ns:3}}</nowiki> bzw. <nowiki>{{:Vorlage:PAGENAME}}</nowiki> zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME". | | * <nowiki>{{:Vorlage:Ns:3}}</nowiki> bzw. <nowiki>{{:Vorlage:PAGENAME}}</nowiki> zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME". |
|
| |
|
| Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein: | | Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein: |
| * Anzeige von Systemtexten im MediaWiki-Namensrtaum. | | |
| | * Anzeige von Systemtexten im MediaWiki-Namensraum. |
| * Vorlagen für den persönlichen Gebrauch in den Unterseiten von jemandes Benutzerseite, beispielsweise zu Testzwecken. | | * Vorlagen für den persönlichen Gebrauch in den Unterseiten von jemandes Benutzerseite, beispielsweise zu Testzwecken. |
| * Einschluss von Seiten in anderen Seiten innerhalb desselben Namensraums, beispielsweise wird eine zusätzliche Seite (z. B. eine Arbeitsliste) mit jeder Seite durch eine einfache Namensübereinstimmung verbunden werden; sie kann mit <nowiki>{{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}}</nowiki> angelegt und eingeschlossen werden. | | * Einschluss von Seiten in anderen Seiten innerhalb desselben Namensraums, beispielsweise wird eine zusätzliche Seite (z. B. eine Arbeitsliste) mit jeder Seite durch eine einfache Namensübereinstimmung verbunden werden; sie kann mit <nowiki>{{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}}</nowiki> angelegt und eingeschlossen werden. |
|
| |
|
| Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe: | | Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe: |
| | |
| * [http://meta.wikimedia.org/wiki/Help:Template#Repetition_within_a_page Repetition within a page] | | * [http://meta.wikimedia.org/wiki/Help:Template#Repetition_within_a_page Repetition within a page] |
| * [http://meta.wikimedia.org/wiki/Template:List_of_template_calls Template:List of template calls] | | * [http://meta.wikimedia.org/wiki/Template:List_of_template_calls Template:List of template calls] |
Zeile 41: |
Zeile 36: |
| Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "<nowiki>{{{{tc}}}}</nowiki>") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "<nowiki>{ {{{tc}}} }</nowiki>") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "<nowiki>{{ {{tc}} }}"</nowiki>. | | Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "<nowiki>{{{{tc}}}}</nowiki>") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "<nowiki>{ {{{tc}}} }</nowiki>") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "<nowiki>{{ {{tc}} }}"</nowiki>. |
|
| |
|
| Die Erweiterung "ExpandTemplates" erstellt die Seite "Special:ExpandTemplates", welche den Wikitext anzeigt, der durch den Aufruf einer Vorlage erzeugt wird. Dasselbe geschieht auch bei Verwendung eines URL der Art "http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand". | | Die Erweiterung "ExpandTemplates" erstellt die Seite "Special:ExpandTemplates", welche den Wikitext anzeigt, der durch den Aufruf einer Vorlage erzeugt wird. Dasselbe geschieht auch bei Verwendung eines URL der Art <nowiki>"http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand"</nowiki>. |
| | |
| == Parameter ==
| |
| | |
| Vorlagenparameter sind "called-by-value" und sind deshalb ausschliesslich Eingabeparameter.
| |
| | |
| In der Vorlage "Aufruf" kann die Anzahl der Parameter variieren (im Beispiel sind es zwei), weswegen die Syntax wie folgt lautet:
| |
| * <nowiki>{{vorlagenname|parname1=parwert1|parname2=parwert2}}</nowiki> mit den Tags <nowiki>{{{parname1|default}}}, {{{parname2|default}}}</nowiki> usw. in der Vorlage, oder
| |
| * <nowiki>{{vorlagenname|parwert1|parwert2}}</nowiki> mit den Tags <nowiki>{{{1|default}}}, {{{2|default}}}</nowiki> usw. in der Vorlage, oder
| |
| * eine Mischung aus den beiden Möglichkeiten.
| |
| | |
| Ein Vorlagenaufruf besitzt also nach dem Vorlagenamen, keine oder mehrere Parameterdefinitionen, die in der Wikisyntax durch das Verkettungszeichen ("|") voneinander getrennt werden. Zudem wird jede ein Gleichheitszeichen ("=") enthaltende Parameterdefinition an der Stelle dieses Gleichheitszeichens in einen Parameternamen und einen Parameterwert getrennt. Für alle übrigen Parameterdefinitionen werden Parameternamen von "1", "2", "3" usw. angenommen.
| |
| | |
| Ein formaler Parameter (der Platzhalter für den Parameterwert) wird durch ein Parameter-Tag mit drei aufeinanderfolgenden geschweiften Klammern dargestellt (z. B. <nowiki>{{{3}}}</nowiki>), optional gefolgt von einem Verkettungszeichen und einem Standardwert (z. B. <nowiki>{{{3|abc}}}</nowiki>).
| |
| | |
| Ein Parameter wie <nowiki>{{{3|abc}}}</nowiki> kann auf zwei Arten referenziert werden:
| |
| * explizit mit "3=pqr". Wenn der Parametername keine "kleine" positive Ganzzahl ist, so kann er nur explizit referenziert werden.
| |
| * implizit, indem "pqr" an dritter Stelle unter den unbenannten Parameterdefinitionen genannt wird.
| |
| | |
| {| class=wiki width=100%
| |
| ! width=50% | Benannte Parameter !! width=50% | Implizit numerierte Parameter
| |
| |-
| |
| |
| |
| * Benannte Parameter können in jeder beliebigen Reihenfolge angegeben werden.
| |
| * Bei einem benannten Parameter werden Leerzeichen und Zeilenumbrüche vom Anfang und Ende der Parameterwerte entfernt. Deshalb ist der beste Name für einen Separatorparameter "1" - er bestimmt, wie die Ausgabe unterteilt wird.
| |
| |
| |
| * Um den Wert eines bestimmten implizit numerierten Parameters anzugeben müssen alle vorangehenden ebenfalls angegeben werden (in diesem Fall wird oft eine leere Zeichenkette als Wert mitgegeben).
| |
| * Mit implizierter Numerierung ist der Aufruf kürzer.
| |
| * Einem implizit numerierter Parameter kann ein das Gleichheitszeichen ("=") enthaltender Wert nur indirekt zugewiesen werden.
| |
| * Bei einem implizit numerierten Parameter werden Leerzeichen und Zeilenumbrüche vom Anfang und Ende der Parameterwerte nicht entfernt.
| |
| |}
| |
| | |
| Der Standardwert (optional, zusammen mit vorangestelltem Verkettungszeichen) kann bei jedem Vorkommen anders sein und wird angewendet, wenn beim Aufruf der Vorlage kein Wert angegeben wurde; er sollte nicht mit dem Fall verwechselt werden, dass der leere Wert angegeben wurde.
| |
| | |
| Um zwischen einem definierten und nicht-leeren Parameter einerseits und einem nicht definierten oder leeren Parameter andererseits unterscheiden zu können, kann "#if:" mit einem leeren Standardwert verwendet werden:
| |
| | |
| <pre class=wiki>
| |
| {{#if: {{{param|}}} | Parameter ist definiert und nicht leer | Parameter ist nicht definiert und leer}}
| |
| </pre>
| |
| | |
| Um zwischen einem definierten (und möglicherweise leeren) und einem nicht definierten Parameter unterscheiden zu können:
| |
| | |
| <pre class=wiki>
| |
| {{#ifeq: {{{param|+}}} | {{{param|-}}} | Parameter ist definiert | Parameter ist nicht definiert}}
| |
| </pre>
| |
| | |
| Im Fall der Seitenersetzung mit einem undefinierten Parameter wird nicht der Standardwert, sondern der Parameter selber mit dem Standardwert ersetzt und in den Wikitext eingefügt. Falls das nicht erwünscht ist, so gibt es eine Alternative (die ebenfalls "#ifeq" verwendet): [http://meta.wikimedia.org/wiki/Help:Substitution#Parameter_default_considerations Help:Substitution#Parameter_default_considerations].
| |
| | |
| === Beispiel: Ersetzung eines benannten Parameters ===
| |
| | |
| Es wird die folgende Vorlage "Namensbeispiel" angelegt (genauer gesagt heisst sie "Vorlage:Namensbeispiel") mit einem Parameter für den Vornamen ("vorname") und einem für den Nachnamen ("nachname"):
| |
| | |
| <pre class=wiki>
| |
| Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b>{{{vorname}}}</b> und mein Nachname ist <b>{{{nachname}}}</b>.
| |
| | |
| Meine Seite kann unter [[{{{nachname}}}, {{{vorname}}}]] aufgerufen werden.
| |
| </pre>
| |
| | |
| Auf einer zweiten Seite wird eingegeben: <nowiki>{{Namensbeispiel}}</nowiki>. Das Ergebnis wird das folgende sein, da die Vorlage keine Parameterwerte besitzt.
| |
| | |
| : Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b><nowiki>{{{vorname}}}</nowiki></b> und mein Nachname ist <b><nowiki>{{{nachname}}}</nowiki></b>.
| |
| : Meine Seite kann unter <nowiki>[[{{{nachname}}}, {{{vorname}}}]]</nowiki> aufgerufen werden.
| |
| | |
| Wird auf der zweiten Seite jedoch folgendes eingegeben: <nowiki>{{Namensbeispiel|vorname=Hans|nachname=Muster}}</nowiki>, so wird das Ergebnis wie folgt aussehen.
| |
| | |
| : Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b>Hans</b> und mein Nachname ist <b>Muster</b>.
| |
| : Meine Seite kann unter [[Muster, Hans]] aufgerufen werden.
| |
| | |
| Um die Arbeitsweise zu analysieren, kann die Spezialseite <nowiki>[[Special:ExpandTemplates]]</nowiki> verwendet werden (im Mikiwiki ist diese Erweiterung allerdings nicht installiert), um den expandierten Wikitext als Zwischenergebnis zu sehen. Wird dieser Wikitext direkt angewendet, so ist das Ergebnis dasselbe.
| |
| | |
| <pre class=wiki>
| |
| Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b>Hans</b> und mein Nachname ist <b>Muster</b>.
| |
| | |
| Meine Seite kann unter [[Muster, Hans]] aufgerufen werden.
| |
| </pre>
| |
| | |
| === Beispiel: Ersetzung eines numerischen Parameters ===
| |
| | |
| Ein Beispiel um zu zeigen, wie die Parameterinhalte funktionieren.
| |
| | |
| Zuerst wird eine Vorlage mit dem Namen "t0" (also eigentlich "Vorlage:t0") definiert, die
| |
| | |
| * ein einziges Argument erwarten wird
| |
| * die den Text dieses Arguments ohne Leerzeichen davor oder danach zurückgeben wird
| |
| * und zwar zwischen "anfang-" und "-ende".
| |
| | |
| <pre class=wiki>
| |
| anfang-{{{1}}}-ende
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! Aufruf der Vorlage "t0" !! Syntax !! Ergebnis
| |
| |-
| |
| | mit dem Parameterwert "a"
| |
| | <tt><nowiki>{{t0|a}}</nowiki></tt>
| |
| | anfang-a-ende
| |
| |-
| |
| | mit dem Parameterwert " " (ein Leerzeichen)
| |
| | <tt><nowiki>{{t0| }}</nowiki></tt>
| |
| | anfang- -ende
| |
| |-
| |
| | mit dem Parameterwert "" (leere Zeichenkette)
| |
| | <tt><nowiki>{{t0|}}</nowiki></tt>
| |
| | anfang--ende
| |
| |-
| |
| | ohne Parameterwerte zu übergeben
| |
| | <tt><nowiki>{{t0}}</nowiki></tt>
| |
| | <nowiki>anfang-{{{1}}}-ende</nowiki>
| |
| |}
| |
| | |
| Wenn irgendetwas in der Art von "<nowiki>{{{1}}}</nowiki>" oder "<nowiki>{{{name}}}</nowiki>" auf einer gewöhnlichen Wikiseite sichtbar ist, so bedeutet das typischerweise, dass der Pflichtparameter einer Vorlage auf dieser Seite nicht definiert wurde.
| |
| | |
| === Deklaration eines Standardwerts ===
| |
| | |
| Dazu gibt es den Metawiki-Artikel "[http://meta.wikimedia.org/wiki/Help:Parameter_default Help:Parameter_default]".
| |
| | |
| Zuerst wird eine Vorlage mit dem Namen "t" (also eigentlich "Vorlage:t") definiert, die einen einzigen numerierten Parameter "1" mit dem Standardwert "pqr" enthält. Der einzige Unterschied der Ausgabe der beiden Vorlagen "t" und "t0" zeigt sich, wenn sie ohne Parameter (und auch ohne Verkettungszeichen "|") aufgerufen werden.
| |
| | |
| <pre class=wiki>
| |
| anfang-{{{1|pqr}}}-ende
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! Aufruf der Vorlage "t" !! Syntax !! Ergebnis
| |
| |-
| |
| | mit dem Parameterwert "a"
| |
| | <tt><nowiki>{{t|a}}</nowiki></tt>
| |
| | anfang-a-ende
| |
| |-
| |
| | mit dem Parameterwert " " (ein Leerzeichen)
| |
| | <tt><nowiki>{{t| }}</nowiki></tt>
| |
| | anfang- -ende
| |
| |-
| |
| | mit dem Parameterwert "" (leere Zeichenkette)
| |
| | <tt><nowiki>{{t|}}</nowiki></tt>
| |
| | anfang--ende
| |
| |-
| |
| | mit dem benannten Parameter "1="
| |
| | <tt><nowiki>{{t|1=keine Überraschung}}</nowiki></tt>
| |
| | <nowiki>anfang-keine Überraschung-ende</nowiki>
| |
| |-
| |
| | mit dem benannten Parameter "1=" nach einem unbenannten Parameter
| |
| | <tt><nowiki>{{t|keine|1=Überraschung}}</nowiki></tt>
| |
| | <nowiki>anfang-Überraschung-ende</nowiki>
| |
| |-
| |
| | mit dem benannten Parameter "1=" vor einem unbenannten Parameter
| |
| | <tt><nowiki>{{t|1=keine|Überraschung}}</nowiki></tt>
| |
| | <nowiki>anfang-Überraschung-ende</nowiki>
| |
| |-
| |
| | ohne Parameter
| |
| | <tt><nowiki>{{t}}</nowiki></tt>
| |
| | <nowiki>anfang-pqr-ende</nowiki>
| |
| |-
| |
| | ohne benannten oder unbenannten Parameter "1"
| |
| | <tt><nowiki>{{t|2=zwei}}</nowiki></tt>
| |
| | <nowiki>anfang-pqr-ende</nowiki>
| |
| |}
| |
| | |
| === Beschränkungen bei Parameterwerten ===
| |
| | |
| Ein implizit benannter Parameter kann einem Wert zugewiesen werden, der ein Gleichheitszeichen enthält - aber nur auf indirekte Weise. Zu den möglichen Methoden (hier mit einem Beispiel unter Verwendung von "Vorlage:t1") gehören:
| |
| | |
| {| class=wiki
| |
| ! Methode !! Syntax !! Ergebnis
| |
| |-
| |
| | Eingabe als Standardwert eines undefinierten Parameters
| |
| | <tt><nowiki>{{t1|{{{| a=b }}} }}</nowiki></tt>
| |
| | anfang- a=b -ende
| |
| |-
| |
| | Verwendung der "Vorlage:="
| |
| | <tt><nowiki>{{t1| a{{=}}b }}</nowiki></tt>
| |
| | anfang- a=b -ende
| |
| |-
| |
| | Wenn es nur um die Anzeige geht, kann das Gleichheitszeichen durch die HTML-Entität "&#x3d;" ersetzt werden.
| |
| | <tt><nowiki>{{t1| a&#x3d;b }}</nowiki></tt>
| |
| | anfang- a=b -ende
| |
| |}
| |
| | |
| Dasselbe Beispiel mit "1 = a=b" ergibt "anfang-a=b-ende".
| |
| | |
| Unter den Gründen für die Verwendung eines unbenannten Parameters sind die folgenden:
| |
| | |
| * Leerzeichen und Zeilenumbrüche werden vom Anfang und Ende des Parameterwerts von benannten Parametern entfernt (wie gerade gezeigt).
| |
| * Die Numerierung der folgenden unbenannten Parameter soll nicht gestört werden (alternativ kann der Parameterdefinition auch ein zusätzliches Verkettungszeichen "|" vorangestellt werden, das eine leere Definition eines unbenannten Parameters erzeugt, welcher durch die betroffene Parameterdefinition überschrieben wird).
| |
| | |
| Jedes nicht übereinstimmende Paar von zwei aufeinanderfolgenden geschweiften Klammern muss innerhalb von "<nowiki>"-Tags gesetzt werden. Geschweifte Klammern können für verschachtelte Vorlagenparameter , verschachtelte Vorlagen oder Parserfunktionen, während eckige Klammern für Links verwendet werden können. Nicht übereinstimmende Paare, die nicht innerhalb von "<nowiki>"-Tags gesetzt werden, verhindern entweder die Vorlagen-Expansion oder werden als schliessende geschweifte Klammern für den Vorlagenaufruf angesehen.
| |
| | |
| === Verkettungszeichen enthaltende Parameterwerte ===
| |
| | |
| Um einen Parameterwert zu definieren, der ein Verkettungszeichen ("|") enthält, das nicht Teil des Vorlagenaufrufs, Parserfunktionsaufrufs, piped Links oder Bild-Tags ist, muss "Vorlage:!" mit dem Inhalt "|" verwendet werden.
| |
| | |
| Für das Beispiel wird die "Vorlage:t0" mit folgendem Inhalt verwendet:
| |
| | |
| <pre class=wiki>
| |
| anfang-{{{1}}}-ende
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! width=15% | Syntax !! width=15% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{t0|a{{!}}b}}</nowiki></tt>
| |
| | <nowiki>anfang-a|b-ende</nowiki>
| |
| | Der expandierte Wikitext ist <nowiki>"anfang-a|b-ende"</nowiki>
| |
| |-
| |
| | <tt><nowiki>{{t0|a&#124;b}}</nowiki></tt>
| |
| | <nowiki>anfang-a|b-ende</nowiki>
| |
| | Der expandierte Wikitext ist "anfang-a&#124;b-ende". Das ergibt zwar dasselbe Ergebnis, macht aber einen Unterschied, wenn das Zeichen in der Tabellensyntax verwendet werden soll: Hier wird das "echte" Verkettungszeichen gefordert.
| |
| |-
| |
| | <tt><nowiki>{{t0|a|b}}</nowiki></tt>
| |
| | anfang-a-ende
| |
| |}
| |
| | |
| Verwendung der "Vorlage:x2" mit folgendem Inhalt:
| |
| | |
| <pre class=wiki>
| |
| {{{1}}}{{{1}}}}
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! width=150 | Syntax !! Ergebnis
| |
| |-
| |
| |
| |
| <tt>{{x2|<nowiki>{{{!}}</nowiki><br>
| |
| <nowiki>{{!}}</nowiki> A<br>
| |
| <nowiki>{{!}}</nowiki> B<br>
| |
| <nowiki>{{!}}</nowiki>-<br>
| |
| <nowiki>{{!}}</nowiki> C<br>
| |
| <nowiki>{{!}}</nowiki> D<br>
| |
| <nowiki>{{!}}}</nowiki><br>
| |
| }}</tt>
| |
| |
| |
| AB
| |
| | |
| CD
| |
| | |
| AB
| |
| | |
| CD
| |
| |-
| |
| |
| |
| <tt>{{x2<nowiki>|</nowiki>{&#124;<br>
| |
| &#124; A<br>
| |
| &#124; B<br>
| |
| &#124;-<br>
| |
| &#124; C<br>
| |
| &#124; D<br>
| |
| &#124;}<br>
| |
| <br>
| |
| }}</tt>
| |
| | <nowiki>{| | A | B |- | C | D |} {| | A | B |- | C | D |}</nowiki>
| |
| |-
| |
| |
| |
| <tt>{{x2|{|<br>
| |
| | A<br>
| |
| | B<br>
| |
| |-<br>
| |
| | C<br>
| |
| | D<br>
| |
| |}<br>
| |
| }}</tt>
| |
| | {{
| |
| |}
| |
| | |
| Ähnliche Konstrukte können einem Parameterwert erlauben, zwei aufeinanderfolgende schliessende geschweifte Klammern zu enthalten. Sogar ein Parametername kann auf diese Weise "|" und "}}" enthalten, doch scheint das wenig Nutzen zu bringen. Ein Seitenname kann jedenfalls weder das Verkettungszeichen noch eine geschweifte Klammer enthalten.
| |
| | |
| === Mischung von benannten und unbenannten Parametern ===
| |
| | |
| Im Fall einer Mischung von benannten und unbenannten Parametern in einem Vorlagen-Tag werden die unbenannten Parametern 1, 2, 3 usw. numeriert - sie werden also nicht nach ihrer Position in der gemischten Liste als ganzes numeriert.
| |
| | |
| Für das Beispiel wird die "Vorlage:t_sup" mit folgendem Inhalt verwendet:
| |
| | |
| <pre class=wiki>
| |
| {{{1}}}-{{{2}}}-{{{3}}}<noinclude> [[category:Vorlagen]]</noinclude>
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! width=15% | Syntax !! width=15% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{t_sup|3=1|2|1=3|4|5|6|7}}</nowiki></tt>
| |
| | 3-4-5
| |
| |
| |
| |}
| |
| | |
| === Parameter, die nicht expandieren ===
| |
| | |
| Innerhalb von "<nowiki>"- oder XML-style extension-Tags werden Parameter nicht expandiert.
| |
| | |
| Das folgende wird also innerhalb einer Vorlage nicht funktionieren, da die Parameter nicht expandiert werden.
| |
| | |
| <pre class=wiki>
| |
| <myextension xparam={{{tparam}}}> ... </myextension>
| |
| </pre>
| |
| | |
| === Mehr als drei öffnende geschweifte Klammern ===
| |
| | |
| Im Fall von mehr als drei öffnenden geschweiften Klammern werden die letzten drei als Parameterklammern interpretiert. Gibt es keine zugehörigen drei schliessenden geschweiften Klammern, so werden die letzten zwei öffnenden geschweiften Klammern als Klammern für eine Vorlagen- oder Parserfunktion angesehen.
| |
| | |
| "<nowiki>{{{{a}}}}</nowiki>" wird also als "<nowiki>{ {{{a}}} }</nowiki>" geparst.
| |
| | |
| {| class=wiki width=100%
| |
| ! width=20% | Syntax !! width=20% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{{{t1|1}}}}</nowiki></tt>
| |
| | {1}
| |
| |
| |
| |-
| |
| | <tt><nowiki>{{ {{t1|1}}}}</nowiki></tt>
| |
| | Vorlage:anfang-1-ende
| |
| |
| |
| |-
| |
| | <tt><nowiki>{{{{t1|1}} }}</nowiki></tt>
| |
| | Vorlage:anfang-1-ende
| |
| |
| |
| |-
| |
| | <tt><nowiki>{{{{t1|1}} }} {{{5}}}</nowiki></tt>
| |
| | Vorlage:anfang-1-ende {{{5}}}
| |
| |
| |
| |}
| |
| | |
| Im weiteren wird "<nowiki>{{{{{a}}}}}</nowiki>" als "<nowiki>{{ {{{a}}} }}</nowiki>" geparst.
| |
| | |
| {| class=wiki width=100%
| |
| ! width=20% | Syntax !! width=20% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{{{{abc|tc}}}}}</nowiki></tt>
| |
| | in
| |
| |
| |
| |}
| |
| | |
| Beginnt also der Ausdruck für einen Parameternamen mit einer Vorlagen- oder Parserfunktion, so wird nach der dritten geschweiften Klammer ein Leerzeichen benötigt.
| |
| | |
| {| class=wiki width=100%
| |
| ! width=20% | Syntax !! width=20% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{{ {{#if:x|tc|ab}}}}}</nowiki></tt>
| |
| | {{{ tc}}}
| |
| |
| |
| |-
| |
| | <tt><nowiki>{{{{{#if:x|tc|ab}}}}}</nowiki></tt>
| |
| | in
| |
| | Hier wird der Standardwert "tc" von Parameter "#if:x" verwendet und "<nowiki>|</nowiki>ab" ignoriert.
| |
| |-
| |
| | <tt><nowiki>{{{{{{a|b}}}|c}}}</nowiki></tt>
| |
| | c
| |
| |
| |
| |}
| |
| | |
| === Beobachtung der Parameterverwendung ===
| |
| | |
| Zum Beobachten der Verwendung des Parameters einer Vorlage (wenn viele Seiten die Vorlage verwenden), kann diese Vorlage eine Hilfsvorlage aufrufen, deren Name davon abhängt, ob der Parameter definiert wurde. Die möglichen Hilfsvorlagen brauchen nicht zu existieren, wenn sie beispielsweise als Parameterwerte der leeren "Vorlage:Leer" verwendet werden, um jegliche Anzeige zu vermeiden (mit dem neuen Präprozessor sollte stattdessen eine Vorlage mit dem Inhalt "<span style="display:none">{{{1}}}</span>" verwendet werden). Werden nun die "Links auf diese Seite" auf diese Hilfsvorlagen angewendet, so zeigen diese, welche Seiten die Vorlage mit und welche ihn ohne Parameter verwenden. Diese Parameterbeobachtungsmöglichkeit sollte vorzugsweise beim Anlegen der Vorlage oder bei der Einführung eines neuen Parameters miteingebaut werden. Wenn es erst später geschieht, so zeigt "Link auf diese Seite" eine Seite womöglich erst an, wenn sie nach dem Bearbeiten einmal abgespeichert oder der Cache geleert wurde.
| |
| | |
| Einige Anwendungen der Parameterbeobachtung:
| |
| | |
| * Prüfung, wo der Parameter noch nicht angegeben wurde, um ihn hinzuzufügen.
| |
| * Prüfung, wo ein umbenannter Parameter verwendet wird, um die Vorlagenaufrufe zu ändern.
| |
| * Prüfung, ob ein Parameter verwendet wird, bevor er abgeschafft wird.
| |
| * Wurde eine Vorlage geändert, um einen bestimmten Parameter zu verarbeiten, so sollten die Seiten (oder wenigstens einige von ihnen) geprüft werden, welche den Parameter verwenden, um zu sehen, ob alles funktioniert wie gewünscht.
| |
| | |
| In einer ähnlichen Weise kann eine Hilfsvorlage für eine Kombination aus "Vorlage / Parameter / Parameterwert" oder "Vorlage / Parameter / Parameterwertbereich" aufgerufen werden. "Links auf diese Seite" zeigt dann, welche Seiten die Vorlage mit diesem Parametwert oder mit dem Parameterwert im angegebenen Bereich verwenden.
| |
| | |
| Siehe dazu: http://meta.wikimedia.org/wiki/Template:T_optional_parameter_demo
| |
| | |
| == Vorlagen-Tag-Layout ==
| |
| | |
| Um ein gewünschten Vorlagen-Tag-Layout zu erzeugen, insbesondere im Fall vieler Parameter, können zusätzliche Blindparameter mit einem [[Zeilenumbruch]], [[Leerzeichen]] und/oder Kommentaren verwendet werden. Im Fall unbenannter Parameter bedeutet das, dass dass einige Parameternummern im Vorlageninhalt nicht verwendet werden, sodass ihre im Vorlagen-Tag vorhandenen Werte das [[HTML-Rendering]] der Vorlage nicht beeinflussen.
| |
| | |
| Für ein Beispiel enthält die "Vorlage:t3d" folgendes:
| |
| | |
| <pre class=wiki>
| |
| {{{1}}} {{{2}}} {{{3}}}<br /> {{{5}}} {{{6}}} {{{7}}}<br /> {{{9}}} {{{10}}} {{{11}}}
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! width=15% | Syntax !! width=15% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>{{t3d |a|b|c| 1
| |
| |d|e|f| 2
| |
| |g|h|i| 3
| |
| }}</nowiki></tt>
| |
| | a b c<br>d e f<br>g h i
| |
| |
| |
| |}
| |
| | |
| Sind Parameter benannt, so können Blindparameter jederzeit einfach eingesetzt werden. Sind sie unbenannt, so können zur Vermeidung einer Neunumerierung beannte Parameter eingefügt werden: Es genügt ein beliebiger Tect mit einem Gleichheitszeichen, sofern der Text auf der linken Seite nicht eine der Parameternummern ist: Dieser Text wird als Name des nicht verwendeten Parameters verwendet und demnach ignoriert.
| |
| | |
| Ein Beispiel dazu findet sich unter http://meta.wikimedia.org/wiki/Help:Template#Template_tag_lay-out
| |
| | |
| == Relativer Name für querverlinkte Seite ==
| |
| | |
| Eine Seite A kann eine Unterseite A/B unter Verwendung von "<nowiki>{{/B}}</nowiki>" querverlinken oder dieser Name kann aus "<nowiki>{{PAGENAME}}</nowiki>" konstruiert werden, wobei mehr Einfluss auf den Namen der querverlinkten Seite genommen werden kann.
| |
| | |
| Dies erlaubt Kopien desselben Wikitexts in verschiedenen Seiten um verschiedene Seiten querzuverlinken. So kann beispielsweise derselbe unter http://s23.org/wikistats/wikipedias_simplewiki.php gefundene Wixitext, der eine Liste von Aufrufen der Art "<nowiki>{{/lang|...}}</nowiki>" enthält, in mehreren Arten auf verschiedenen Seiten verwendet werden, bnesipielsweise für die Seite [http://meta.wikimedia.org/wiki/List_of_Wikipedias/lang/demo List of Wikipedias/lang/demo] und [http://meta.wikimedia.org/wiki/List_of_Wikipedias/local_names List of Wikipedias|local names], indem der Inhalt der Unterseite verändert wird. Eine querverlinkte Seite braucht nicht alle angegebenen Parameter zu verwenden. Zwei Seiten können dieselbe querverlinkte Seite über eine [[Weiterleitung]] nutzen.
| |
| | |
| == Vorlageseite ==
| |
| | |
| Mit Ausnahme der "<nowiki><noinclude></nowiki>"- und "<nowiki><includeonly></nowiki>"-Teile sind die folgenden Dinge identisch, es werden also die Vorgabewerte angezeigt:
| |
| | |
| * Das Rendering des Wikitexts der Vorlage (das geschieht auf der Vorlageseite und wäre für andere Seiten mit demselben Wikitext dasselbe, mit Ausnahme seitenabhängiger Variablen).
| |
| * Das Rendering der Vorlage auf einer Seite, die sie ohne Parameter aufruft.
| |
| | |
| Beispielsweise zeigt also die "Vorlage:T_1" mit dem Inhalt "<nowiki>abc{{{1|def}}}ghi{{{1|jkl}}}mno</nowiki>" dasselbe wie die Vorlage "<nowiki>{{t_1}}</nowiki>", nämlich "abcdefghijklmno".
| |
| | |
| === Vorlagenseite ohne angegebene Vorgabewerte ===
| |
| | |
| In einfachen Fällen entspricht das der Behandlung der Parametertags als gewöhnlicher Text.
| |
| | |
| Für ein Beispiel enthält die "Vorlage:t2demo" folgendes:
| |
| | |
| <pre class=wiki>
| |
| anfang-{{{1}}}-mitte-{{{2}}}-ende<noinclude>[[Kategorie:Demovorlage]]</noinclude>
| |
| </pre>
| |
| | |
| {| class=wiki
| |
| ! width=15% | Syntax !! width=15% | Ergebnis !! Beschreibung
| |
| |-
| |
| | <tt><nowiki>anfang-{{{1}}}-mitte-{{{2}}}-ende</nowiki></tt>
| |
| | <nowiki>anfang-{{{1}}}-mitte-{{{2}}}-ende</nowiki>
| |
| |
| |
| |}
| |
| | |
| Sind Teile des Parameters undefiniert, so tauchen nur diese als "<nowiki>{{{Parameternummer oder -name}}}</nowiki>" auf.
| |
| | |
| Oft erzeugen die gerenderten Seiten jedoch auch eine scheinbar willkürlich verstümmelte Darstellung ihres Inhalts:
| |
| | |
| * Werden "#expr" und "#ifexpr" auf einen Ausdruck angewendet, der einen Parameter-Tag ohne Vorgabewert enthält, so erzeugt das eine Fehlermeldung. Beispielsweise erzeugt eine Vorlage, die den Parameter "<nowiki>{{{1}}}</nowiki>" mit dem Wikitext "<nowiki>{{#expr:2*{{{1}}}}}</nowiki>" verdoppelt, folgende Fehlermeldung: "Expression error: Unrecognised punctuation character "{"".
| |
| | |
| Für Parameter ohne Vorgabewerte wird eine Umgehungslösung benötigt, da das Ergebnis im Falle eines undefinierten Parameters ohnehin nur von beschränktem Wert ist. Soll das Ergebnis dennoch angezeigtw erden, so können "<nowiki>"-Tags um den Parameter gesetzt werden; im Fall des ersten Beispiels ergibt das "<nowiki>{{{1}}}p</nowiki>".
| |
| | |
| Weniger überraschend, aber trotzdem die Brauchbarkeit des Ergebnisses einschränkend sind:
| |
| | |
| * "#if" wird auf einen Parameter ohne Vorgabewert angewendet und erzeugt den "then"-Teil, während der "else"-Teil nicht angezeigt wird.
| |
| * "#ifeq" erzeugt typischerweise nur den "else"-Teil.
| |
| * Variablen-Tags werden ausgewertet, aber nicht angezeigt.
| |
| * Ein Switch zeigt typischerweise nur den Vorgabewert.
| |
| | |
| In solchen Fällen kann der "<nowiki><includeonly></nowiki>"-Tag verwendet werden, um aussageschwaches und chaotisches Rendering auf der Vorlagenseite zu vermeiden. Doch so oder so bleibt der Nachteil während der Vorlagenentwicklung, dass eine Vorschau nicht auf aussagekräftige Weise die Änderungen in den Teilen ausserhalb der "<nowiki><noinclude</nowiki>"-Tags (also in den eingeschlossenen Teilen) anzeigt. Deshalb kann zumindest während der Vorlageentwicklung nützlich sein, aussagekräftige Vorgabewerte mitzuliefern.
| |
| | |
| Mit dem "<nowiki><noinclude</nowiki>"-Tag kann eine aussagekräftige Vorlage erzeugt werden, welche mehr Demonstrationen und Testfälle enthält als der einfache Standard. Typischerweise enthält der "<nowiki><noinclude</nowiki>"-Teil der Vorlageseite Beispiele, welche die Vorlage neim Einschliessen oder Ersetzen erzeugt. Änderungen in der Arbeitsweise (z. B. Änderungen ausserhalb des "<nowiki><noinclude</nowiki>"-Teils) sind in der Vorschau dieser Beispiele noch nicht effektiv, und ebenso nicht in "Zeige Änderungen" im Fall der Ersetzung.
| |
| | |
| Es können sich einige Formatierungseffekte zeigen, welche in der Bearbeitungsbox nicht zu erkennen waren.
| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
|
| |
|
| | Eine Vorlage ist durch ein vorangestelltes "Vorlage:" (z. B. "[[Vorlage:Text]]") gekennzeichnet und kann wie jede andere Wikiseite erstellt werden. |
|
| |
|
| | == Konzepte == |
|
| |
|
| | * [[/Parameter|Parameter]] |
| | * [[/Vorlagen-Tag-Layout|Vorlagen-Tag-Layout]] |
| | * [[/Relativer Name für querverlinkte Seite|Relativer Name für querverlinkte Seite]] |
| | * [[/Vorlageseite|Vorlagenseite]] |
|
| |
|
| <!-- | | <!-- |
Zeile 536: |
Zeile 84: |
|
| |
|
| --> | | --> |
| | | {{Weblinks}} |
| == Weblinks ==
| | {{url|US|meta.Wikimedia.org|eng|http://meta.wikimedia.org/wiki/Help:Template|Help:Template}} |
| | |
| {{Weblinks|{{url|US|meta.Wikimedia.org|eng|http://meta.wikimedia.org/wiki/Help:Template|Help:Template}} | |
| {{url|US|Mediawiki.org|eng|http://www.mediawiki.org/wiki/Help:Templates|Help:Templates}} | | {{url|US|Mediawiki.org|eng|http://www.mediawiki.org/wiki/Help:Templates|Help:Templates}} |
| {{url|US|Mediawiki.org|ger|http://www.mediawiki.org/wiki/Help:Templates/de|Help:Templates/de}} | | {{url|US|Mediawiki.org|ger|http://www.mediawiki.org/wiki/Help:Templates/de|Help:Templates/de}} |
| }} | | {{Fuss}} |
|
| |
|
|
| |
|
| {{cat|Mediawiki}} | | {{cat|Mediawiki}} |
| | {{cat|UNFERTIG}} |