Knuddels-Wiki:Handbuch10

Vorlagen

Nachdem wir das Thema Seitenverwaltung in unserem Tutorial abgeschlossen haben, wollen wir dir das Thema Vorlagen näher bringen. Unter einer Vorlage verstehen wir eine erstellte Seite, welche nach dem Prinzip der Transklusion (die Übernahme von einem elektronischen Dokument oder Teilen davon in ein oder mehrere andere Dokumente durch einen Hypertext-Verweis) in eine andere Seite eingebunden wird. Prinzipiell können Seiten sämtlicher Namensräume wie eine Vorlage verwendet (transkludiert) werden. Die Verwendung des Vorlagen-Namensraums ist jedoch bei Vorlagen, die in Artikeln verwendet werden sollen, generell zu bevorzugen.

Vorlagen einbinden

Um eine einfache Vorlage in einem Artikel zu verwenden, gibt es drei Möglichkeiten:

  • 1. Im Hauptanwendungsfall fügst du eine Vorlage mit {{Titel}} ein. Beim Anzeigen der Seite ersetzt die Knuddels-Wiki-Software dies dann durch den Inhalt der Vorlage „Titel“. Ändert jemand die Vorlage, ändert sich dadurch auch die Darstellung.
  • 2. {{subst:Titel}} (für Substitution) oder auch {{ers:Titel}} (für Ersetzen) fügt ebenfalls den Inhalt der Vorlage ein, ersetzt den Titel der Vorlage jedoch auch in der Bearbeitungsumgebung (die Ansicht, die man erhält, wenn man oben auf den Reiter „Seite bearbeiten“ geklickt hat) durch den eigentlichen Text der Vorlage.
  • 3. {{msgnw:Titel}} zeigt im Artikel den Quellcode der Vorlage an. Diese Funktion wird selten – eigentlich nur zur Erklärung von Vorlagen – gebraucht.

Seiten, die nicht im Namensraum Vorlage stehen, lassen sich dennoch als Vorlage verwenden, wenn man den Namensraum mit angibt. Will man eine Seite aus dem Artikelnamensraum einbinden, muss man allerdings noch einen Doppelpunkt vor den Namen setzen: So würde {{:Test}} beispielsweise den Artikel Test wie eine Vorlage einbinden.

Vorlagen erstellen

Vorlagen werden wie jede andere Seite erstellt und bearbeitet: Wähle einen geeigneten Namen, gehe auf diese Seite und klicke auf den Erstellen-Tab oder den Bearbeiten-Tab. Wie bereits erwähnt, werden Vorlagen standardmäßig im Vorlagen-Namensraum erstellt bzw. nach Tests dorthin verschoben. Vorlagen können zur Eigenverwendung eines Autors oder zu Testzwecken auch im Benutzernamensraum als Unterseite erstellt werden, diese sollen dann allerdings nicht im Artikelnamensraum verwendet werden. Alle Funktionalitäten, die andere Seiten enthalten können, können auch Vorlagen beinhalten. Grundsätzlich sind enzyklopädische Inhalte und Aussagen in den Artikeln darzustellen. Damit ist explizit auch die Auslagerung häufig eingebundener Funktionen in Untervorlagen bzw. weitere Vorlagen gemeint. Vor dem Erstellen einer Vorlage suche nach bereits bestehenden Vorlagen , etwa durch Nachschauen in [[Kategorie:Vorlage]], um Dopplungen zu vermeiden. Gibt es bereits eine ähnliche Vorlage, so steht es dir frei, diese um das gewünschte zu erweitern. Zeitweise sind auch parallele Verwendungen zweier ähnlicher Vorlagen möglich, sofern gleiche bzw. ähnliche Vorlagen entweder zusammengeführt werden oder diese verändert werden, um sich stärker voneinander abzugrenzen. Es gibt keine genauen Regeln für die Auswahl eines Vorlagennamens, er sollte jedoch für alle anderen Autoren ausreichend beschreibend sein; dann so kurz wie möglich. Abkürzungen mit weniger als vier Buchstaben sollten ausgesuchten Anwendungen vorbehalten sein. Existieren bereits ähnliche Vorlagen, dann nutze eine konsistente Benennung. Vorlagen können umbenannt (bzw. verschoben) werden, ohne dass bestehende Einbindungen verloren gehen, solange die entstehende Weiterleitung bestehen bleibt oder die Einbindung korrigiert wird.

Sei vorsichtig, wenn du bestehende Vorlagen bearbeitest, diese können teils sehr komplex, häufig eingebunden oder auch beides zugleich sein. Daher sind viele Vorlagen ab einer gewissen Zahl an Einbindungen auf Anfrage gesperrt.

Einsatzmöglichkeiten

Vorlagen sind nur dann sinnvoll, wenn es von ihnen nur eine überschaubare Anzahl gibt, die sich Benutzer auch merken können. Insbesondere sollten Vorlagen nicht doppelt oder sehr ähnlich entstehen. Um dies zu verhindern, sollten Vorlagen von allgemeiner Relevanz gefördert werden, indem sie in eine spezielle Liste in alphabetischer Reihenfolge eingetragen werden.

Gewünschte Einsatzmöglichkeiten von Vorlagen

  • Konsistenzmaximierung: Mit Vorlagen lässt sich ein einheitliches Erscheinungsbild erreichen.
  • Redundanzminimierung: Wenn der Inhalt zentral nur an einer Stelle festgelegt wird (d. h. in einer Vorlage), dann erscheint der Inhalt in allen Artikeln gleich, auch bei einer nachträglichen Änderung. Das mühselige und fehlerträchtige Übertragen einer Änderung in jeden Artikel entfällt.
  • Codeoptimierung: Manche schöne Darstellung lässt sich nur mit einem unschönen Mix aus Wiki-, HTML- bzw. CSS-Befehlen erreichen. Der Artikelquellcode wird dann schnell unübersichtlich und verschreckt Wikianfänger, sich auch an der weiteren Verbesserung eines Artikels zu beteiligen. Hier kann eine Vorlage helfen, den Artikelquellcode lesbarer zu gestalten.
  • Auswertung: Neben der einheitlichen Präsentation lassen sich die der Vorlage übergebenen Daten (Parameter) auch automatisiert auswerten.

Unerwünschte Einsatzmöglichkeiten von Vorlagen

  • Benutzersignaturen: Die Idee, Vorlagen für die eigene Benutzersignatur zu verwenden, mag gut klingen: man muss nur die Vorlage ändern und alle Signaturen, die man irgendwann mal hinterlassen hat, werden „aktualisiert“. Dabei sollte man aber die nicht ganz offensichtliche Tatsache bedenken, dass jede Benutzung einer Vorlage eine zusätzliche Anfrage an die Datenbank bedeutet und somit die Wikipedia belastet, ohne zum eigentlichen Zweck derselben beizutragen. Daher sind Signaturvorlagen nicht erwünscht. Man sollte lieber zu seinen alten Signaturen stehen.

Bedingtes Einbinden von Quelltextblöcken

Folgende Tags sollten nur innerhalb von Seiten verwendet werden, die auch wie eine Vorlage eingebunden werden:

<onlyinclude>

Wenn die Vorlage direkt betrachtet wird, haben <nowiki</nowiki> und keine Wirkung auf alles, was dazwischen steht. Wenn die Vorlage jedoch auf einer anderen Seite eingebunden ist, wird ausschließlich angezeigt, was zwischen <onlyinclude> und </nowiki></nowki> steht. Außerhalb dieses mit <onlyinclude> festgelegten Bereichs können Dokumentation, Kategorie und Knuddels-Wiki-Links in Vorlagen eingefügt werden, ohne dass diese in den Artikeln auftauchen. Es können auch mehrere nicht-verschachtelte <onlyinclude>-Blöcke in einer Vorlage stehen.

<includeonly>

Alles, was in einer Vorlage zwischen <includeonly> und </includeonly> steht, wird nur dann angezeigt, wenn die Vorlage auf einer anderen Seite eingebunden wird. Mit <includeonly> lassen sich zum Beispiel alle Seiten, die eine bestimmte Vorlage enthalten, automatisch einer Kategorie hinzufügen. <includeonly> kann auch in <onlyinclude>-Blöcken stehen.

<noinclude>

Alles, was in einer Vorlage zwischen <noinclude> und </noinclude> steht, wird dagegen nur dann angezeigt, wenn die Vorlage selbst betrachtet wird. <onlyinclude> sollte zum Abgrenzen des eigentlichen Vorlagentextes von der Dokumentation, den Kategorien und Interwikilinks bevorzugt werden. <noinclude> kann auch in <onlyinclude>-Blöcken stehen.

Tag-Kombination Auf der Vorlagenseite sichtbar? Einbindung? Anmerkung
keine Ja Ja Nur, wenn kein onlyinclude in der Vorlage ist.
<includeonly>…</includeonly> Nein Ja Nur, wenn kein onlyinclude in der Vorlage ist.
<noinclude>…</noinclude> Ja Nein Auch innerhalb von onlyinclude möglich.
<onlyinclude>…</onlyinclude> Ja Ja Text außerhalb wird nicht eingebunden.
<onlyinclude><includeonly>…
</includeonly></onlyinclude>
Nein Ja Text außerhalb wird nicht eingebunden.
<onlyinclude>Text 1</onlyinclude>…
<includeonly>Text 2</includeonly>
Text 1: Ja,
Text 2: Nein
Text 1: Ja,
Text 2: Nein
Text 2 ist keine sinnvolle Kombination.

Textformatierung

Sinn und Zweck von Vorlagen ist vor allem auch die artikelübergreifende einheitliche Darstellung von bestimmten Elementen und Texten. Insbesondere die Textformatierung sollte also soweit möglich über die Vorlage erfolgen. So sollte bspw. Kursivsetzung, Fettschrift oder Schriftgröße über die Programmierung der Vorlage geändert werden. Entsprechend ist beim Vorlagenaufruf bei der Eingabe von Parametern, die auch als Ausgabetext verwendet werden, auf Formatierungen zu verzichten, da damit die festgelegte Formatierung unterlaufen wird und eine uneinheitliche Darstellung entsteht. Dies gilt auch, wenn eine Formatierung nicht mit den aktuellen Vorgaben kollidiert. Vorlagen können auch dazu genutzt werden, eine nachträgliche Änderung über alle Vorkommen in den Artikeln zu bewirken. Individuelle Formatierungen können also auch nachträglich zu einem Problem werden.

Einbindung von Aufzählungszeichen

  • Will man Aufzählungszeichen (* oder #), wie am Anfang dieser Zeile eines steht, als Parameterwert benutzen, so sollte in der Vorlage vor dem Parameter eine neue Zeile begonnen werden

Einbindung von Gleichheitszeichen in Parameterwerten

Übergibt man einer Vorlage als Parameterwert einen Text, der ein Gleichheitszeichen enthält, nimmt die MediaWiki-Software an, vor dem ersten Gleichheitszeichen stünde der Name eines Parameters, dem der Rest des Textes hinter dem ersten Gleichheitszeichen als Wert zugewiesen werden solle. Alle Parameterangaben mit enthaltenem Gleichheitszeichen werden also als Name-Wert-Paare interpretiert und dazu am ersten Gleichheitszeichen zerlegt. Die Abhilfe gegen diese unerwünschte Interpretation ist, dass man dem Parameterwert den numerischen Index des Parameters und ein weiteres Gleichheitszeichen voranstellt. Dann wird wie gewünscht interpretiert, dass der Parameterwert erst hinter dem (hinzugefügten) ersten Gleichheitszeichen beginnt, und der diesem vorangestellte Index bezeichnet unmissverständlich den Zielparameter für den Wert. Die Zählung der Parameter beginnt dabei mit 1 beim ersten Parameter nach dem Vorlagennamen.

Einbindung von Sonderzeichen in Parameterwerten

Wenn Sonderzeichen der Wikisyntax und vor allem der Vorlagensyntax in Parameterwerten benutzt werden müssen, können Probleme auftreten. Soll das Zeichen einfach nur im dargestellten Text oder in einer URL erscheinen, ist ein Ersatz durch eine HTML-Entität die einfachste Möglichkeit. In URLs kann gegebenenfalls auch URL-Encoding verwendet werden.

Zeichen { | } = [ ] * # : ; Leerzeichen < >
Entity &#123; &#124; &#125; &#61; &#91; &#93; &#42; &#35; &#58; &#59; &#32; &lt; &gt;

Leerzeichen zu Beginn und am Ende von Werten benannter Parameter werden „geschluckt“; * und # am Beginn eines Parameterwertes werden als Wikisyntax für Aufzählungszeichen interpretiert, wenn innerhalb der Vorlage der Zeilenumbruch vorgesehen ist. Sind mehrere Zeichen vorhanden, ist es eine lesbarere Variante, den Text in <nowiki>…</nowiki> einzufassen, wenn nichts darin als Wikisyntax interpretiert werden soll.

Einbindung von Senkrechten Strichen in Parameterwerten

Ob ein senkrechter Strich |> („Pipe“) vom Parser als Wikisyntax interpretiert wird, hängt von der Art der Verwendung ab (siehe Tabelle). Innerhalb einer geschlossenen Einheit wie eines betitelten Wikilinks wird er nicht nach außen wirksam; gleichfalls nicht innerhalb einer geschlossenen inneren Vorlageneinbindung. Mitunter ist es also erforderlich, Teilstücke eines Wikisyntax-Konstruktes wie Wikilinks oder Tabellen als Parameterwert zu übergeben, aus denen schließlich das vollständige Element zusammengesetzt werden soll. In diesem Fall empfehlen sich die nachstehend beschriebenen Vorlagen, die die Sonderzeichen einfügen und noch die spätere Interpretation als Wikisyntax zulassen. Sie sollen ausschließlich in Parameterwerten eingesetzt werden.

Syntaxwirkung des senkrechten Strichs
  | {{!}} &#124;
Trennung von Vorlagen­parametern Ja Nein Nein
Trennung von Parametern bei Wikilinks Ja Ja Nein
Tabellen­syntax Ja Ja Nein

Tabellenelemente

Da das >>|<< zur Trennung von Parametern dient, darf es nicht selbst in Parameterwerten vorkommen.

benötigter Code | |- |+ || {| |} |-
|
Quelltext mit Variable ! {{!}} {{!}}- {{!}}+ {{!}}{{!}} {{{!}} {{!}}} {{!}}-
{{!}}
Hilfsvorlage keine {{!-}} {{!+}} {{!!}} {{(!}} {{!)}} {{!-!}}

Größere Tabellenteile können auch auf eine Unterseite der Vorlage ausgelagert und von dort eingebunden werden. Ist auch das nicht praktikabel, kann notfalls auf HTML (<td> usw.) zurückgegriffen werden.

Knuddels-Wiki-Links

Vollständige Knuddels-Wiki-Links als Parameterwerte sind wie üblich anzugeben, also ohne besondere Maßnahmen, wenn nach einem senkrechten Strich ein Link-Titel folgt. Ist es dagegen nur ein Teil eines Wikilinks oder einer Datei-Einbindung, das erst noch zusammengebaut werden soll, so ist {{!}} statt „|“ zu benutzen:
Nicht {{Linkvorlage|Inhalt=Lemma|Linktext}}, sondern {{Linkvorlage|Inhalt=Lemma{{!}}Linktext}}.

Eckige Klammern

benötigter Code {{!(}} {{)!}}
Inhalt [ ]

Neben der Darstellung von einfachen eckigen Klammern als &#91; für [ und &#93; für ] oder Einfassung in nowiki-Tags kann man nebenstehende Vorlagen verwenden. Mit ihnen gebildete Links werden aber interpretiert!

Vorlagen dokumentieren

Vorlagen, die in normalen Artikeln verwendet werden, sollten so einfach gestaltet sein, dass Zweck und Anwendung unmittelbar verständlich sind. In jedem Fall ist eine Beschreibung ihrer Funktion notwendig. Dies kann im noinclude-Bereich der Vorlagenseite geschehen. Bei häufig eingebundenen Vorlagen sollte die Funktionsbeschreibung jedoch besser auf einer separaten Seite stehen. Eine Änderung der Vorlagenseite selbst bewirkt nämlich, dass alle davon abhängigen Seiten bei einem erneuten Aufruf neu generiert werden müssen, anstatt sie aus dem Cache laden zu können. Diese Serverlast sollte vermieden werden. Die vorstehende Überlegung ist allerdings auch nur relevant, wenn mit Überarbeitungen der Dokumentation bei unveränderter Funktion zu rechnen ist; das Auslagern der Dokumentation verbessert jedoch ohnedies die Übersichtlichkeit.

Ausführliche Dokumentation auf einer Unterseite

Für eine ausführliche Dokumentation eignet sich eine Unterseite der Vorlage.

Kategorisierung

Jede Vorlage soll mittels [[Kategorie:Vorlage]] in die Vorlagen-Kategorie einsortiert werden. Achte bei der Einsortierung darauf, eine oder mehrere thematisch passende Kategorien zu finden. Eine Einsortierung von Vorlagen in Artikelkategorien ist nicht erwünscht.