Mediawiki/Vorlage: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 4: | Zeile 4: | ||
* [[/Parameter|Parameter]] | * [[/Parameter|Parameter]] | ||
* [[/Vorlagen-Tag-Layout|Vorlagen-Tag-Layout]] | |||
== Erstellung == | == Erstellung == | ||
Zeile 46: | Zeile 47: | ||
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 "http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand". | ||
== Relativer Name für querverlinkte Seite == | == Relativer Name für querverlinkte Seite == |
Version vom 7. März 2009, 14:24 Uhr
Konzepte
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.
[[Template:Name]] [[Vorlage:Name]] |
Erzeugt einen Hyperlink zur Vorlage "Name". |
{{Name}} | 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 "{{Name}}" zu sehen. |
{{msgnw:Name}} | Der Inhalt der Vorlage "Name" erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird, wobei die rohe Wikisyntax angezeigt wird, als ob der Text vom "<nowiki>"-Tag umschlossen wäre. Im Bearbeitungsfenster ist stets nur "{{msngw:Name}}" zu sehen. |
{{subst:Name}} | (substitute) Der Inhalt der Vorlage "Name" wird sofort beim Speichern der aktuellen Seite in die aktuelle Seite eingefügt. Ab diesem Zeitpunkt ist im Bearbeitungsfenster nur noch der eingefügte Text zu sehen. |
Auch eine Seite aus einem anderen Namensraum als "Vorlage:" kann als Vorlage verwendet werden - Ausnahmen sind nur die in "$wgNonincludableNamespaces" ausdrücklich ausgenommenen Namensräume. Um eine Seite aus dem Hauptnamensbereich als Vorlage zu verwenden, wird ein Doppelpunkt (":") vor den Seitennamen geschrieben.
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:
- {{Ns:3}} bzw. {{PAGENAME}} zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite)
- {{:Vorlage:Ns:3}} bzw. {{:Vorlage:PAGENAME}} zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME".
Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein:
- Anzeige von Systemtexten im MediaWiki-Namensrtaum.
- 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 {{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}} angelegt und eingeschlossen werden.
Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe:
Eine seitenbezogene Variable innerhalb einer Vorlage (z. B. {{PAGENAME}}) wird den Wert der die Vorlage aufrufenden Seite ergeben, nicht den Wert, den die Vorlage selbst liefern würde.
In einem Vorlagennamen wird das Zeichen "#" und alle darauffolgenden Zeichen ignoriert: "{{tc#abc}}" wird also den Inhalt der Vorlage "tc" liefern.
Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "{{{{tc}}}}") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "{ {{{tc}}} }") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "{{ {{tc}} }}".
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".
Relativer Name für querverlinkte Seite
Eine Seite A kann eine Unterseite A/B unter Verwendung von "{{/B}}" querverlinken oder dieser Name kann aus "{{PAGENAME}}" 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 "{{/lang|...}}" enthält, in mehreren Arten auf verschiedenen Seiten verwendet werden, bnesipielsweise für die Seite List of Wikipedias/lang/demo und 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 "<noinclude>"- und "<includeonly>"-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 "abc{{{1|def}}}ghi{{{1|jkl}}}mno" dasselbe wie die Vorlage "{{t_1}}", 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:
anfang-{{{1}}}-mitte-{{{2}}}-ende<noinclude>[[Kategorie:Demovorlage]]</noinclude>
Syntax | Ergebnis | Beschreibung |
---|---|---|
anfang-{{{1}}}-mitte-{{{2}}}-ende | anfang-{{{1}}}-mitte-{{{2}}}-ende |
Sind Teile des Parameters undefiniert, so tauchen nur diese als "{{{Parameternummer oder -name}}}" 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 "{{{1}}}" mit dem Wikitext "{{#expr:2*{{{1}}}}}" 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 "{{{1}}}p".
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 "<includeonly>"-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 "<noinclude"-Tags (also in den eingeschlossenen Teilen) anzeigt. Deshalb kann zumindest während der Vorlageentwicklung nützlich sein, aussagekräftige Vorgabewerte mitzuliefern.
Mit dem "<noinclude"-Tag kann eine aussagekräftige Vorlage erzeugt werden, welche mehr Demonstrationen und Testfälle enthält als der einfache Standard. Typischerweise enthält der "<noinclude"-Teil der Vorlageseite Beispiele, welche die Vorlage neim Einschliessen oder Ersetzen erzeugt. Änderungen in der Arbeitsweise (z. B. Änderungen ausserhalb des "<noinclude"-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.
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|