Hilfe:Vorlagen/Erstellung
Dieser Artikel wird gerade bearbeitet. Bitte warte mit deinen Änderungen, bis diese Markierung entfernt wurde, oder wende dich an den Bearbeiter, rikku. Diese Seite wurde zuletzt vor 3766 Tagen bearbeitet. |
Namensraum
Analog zu Benutzerseiten, Dateien oder Kategorien, werden Vorlagen von gewöhnlichen Wiki-Artikeln unterschieden. In ConanWiki steht hierfür der Namensraum Vorlage zur Verfügung. Seiten, die eine Vorlage repräsentieren, sind in diesem Namensraum anzulegen.
Eine Seite wird in einem bestimmten Namensraum angelegt, indem dieser als Präfix dem Titel der Seite vorangestellt wird: {{<Namensraum>:<Titel der Seite>}}
. Um eine Seite als Vorlage anzulegen, ist diese demnach wie folgt zu benennen: {{Vorlage:<Name der Vorlage>}}
.
Sichtbarkeit definieren
Zu einer Vorlage kann die Sichtbarkeit einzelner Textblöcke aus der Vorlage definiert werden. Hierbei wird unterschieden, ob ein Textblock
- nur auf der Vorlagenseite selbst sichtbar ist,
- nur auf Seiten sichtbar ist, auf der die Vorlage eingebunden ist oder
- sowohl auf der Vorlagenseite als auch auf den Seiten die die Vorlagen einbinden sichtbar ist.
- <onlyinclude>
- Wenn die Vorlage direkt betrachtet wird, haben
<onlyinclude>
und</onlyinclude>
keine Wirkung auf alles, was dazwischen steht. Wenn die Vorlage jedoch auf einer anderen Seite eingebunden ist, wird ausschließlich angezeigt, was zwischen diesen beiden Tags steht. Außerhalb von<onlyinclude>
können Dokumentationen und Kategorien 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 innerhalb von<onlyinclude>
-Blöcken stehen. - <noinclude>
- Alles, was in einer Vorlage zwischen
<noinclude>
und</noinclude>
steht, wird nur dann angezeigt, wenn die Vorlage selbst betrachtet wird und nicht auf einer Seite, auf der die Vorlage eingebunden ist.<noinclude>
kann auch innerhalb von<onlyinclude>
-Blöcken stehen.<onlyinclude>
sollte zum Abgrenzen des eigentlichen Vorlagentextes von der Dokumentation, den Kategorien und Interwikilinks bevorzugt werden.
Sind in der Vorlage keine Vorgaben zur Sichtbarkeit definiert, ist standardmäßig der komplette Text der Vorlage immer sichtbar, also sowohl auf der Vorlagenseite als auch auf den Seiten, die die Vorlage einbinden.
Nachfolgend einige Beispiele für mögliche sinnvolle Vorgaben zur Sichtbarkeit:
Tag-Kombination | Auf der Vorlagenseite | Auf der einbindenden Seite | Bemerkung |
---|---|---|---|
keine | sichtbar | sichtbar [1] | [1] Nur, wenn kein onlyinclude-Block in der Vorlage ist. |
<includeonly>…</includeonly> | nicht sichtbar | sichtbar [1] | [1] Nur, wenn kein onlyinclude-Block in der Vorlage ist. |
<noinclude>…</noinclude> | sichtbar [2] | nicht sichtbar | [2] Auch innerhalb eines onlyinclude-Blocks. |
<onlyinclude>…</onlyinclude> | sichtbar | sichtbar [3] | [3] Text außerhalb des onlyinclude-Blocks wird nicht eingebunden. |
Text 1 <onlyinclude>Text 2 <includeonly>Text 3</includeonly> <noinclude>Text 4</noinclude> </onlyinclude>Text 5 |
Text 1: sichtbar, Text 2: sichtbar, Text 3: nicht sichtbar, Text 4: sichtbar, Text 5: sichtbar |
Text 1: nicht sichtbar, Text 2: sichtbar, Text 3: sichtbar, Text 4: nicht sichtbar, Text 5: nicht sichtbar |
Nachfolgend einige Beispiele für nicht sinnvolle Kombinationen zur Sichtbarkeit:
Tag-Kombination | Auf der Vorlagenseite | Auf der einbindenden Seite | Bemerkung |
---|---|---|---|
<includeonly>Text 1</includeonly> <onlyinclude>Text 2</onlyinclude> |
Text 1: nicht sichtbar, Text 2: sichtbar |
Text 1: nicht sichtbar, Text 2: sichtbar |
Wenn onlyinclude-Blöcke enthalten sind, werden Textblöcke außerhalb dieser nicht auf anderen Seiten eingebunden. Der Text 1 wird niemals angezeigt und diese Tag-Kombination ist demnach nicht sinnvoll. |
<includeonly><onlyinclude>... </onlyinclude></includeonly> |
nicht sichtbar | sichtbar | Textblöcke innerhalb von includeonly-Blöcken werden außschließlich auf den einbindenden Seiten angezeigt. Der zusätzliche onlyinclude-Block macht demnach keinen Sinn und lediglich die Vorlage komplizierter. |
Einfache Dynamisierung: Parameter definieren
In Abschnitt "{{{refVorlageVerwenden}}}" wurde bereits angesprochen, dass Vorlagen parametrierbar sein können. Die Art und Weise der Parameterübergabe wird bei der Vorlagenerstellung definiert und kann im Nachhinein nur schwer geändert werden.
Innerhalb der Vorlage ist ein Platzhalter durch drei einschließende geschweifte Klammern gekennzeichnet; diese können entweder durchnummeriert oder durch frei gewählte Namen bezeichnet werden:
{{{Y}}}
, wobei Y eine fortlaufende Nummer beginnend bei Eins ist, kennzeichnet einen anonymen Parameter.{{{<Parametername>}}}
kennzeichnet einen ausgezeichneten Parameter, der bei der Verwendung der Vorlage dediziert über seinen Namen angesprochen werden kann.
Nachfolgend ein kleines Beispiel, wie sich die beiden Parameterdefinitionen unterscheiden:
Anonyme und ausgezeichnete Parameter definieren
Beispielvorlage1: Nach Auffassung {{{1}}}s ist der Täter {{{2}}}.
Beispielvorlage2: Nach Auffassung {{{Detektiv}}}s ist der Täter {{{Täter}}}.
Die beiden Beispielvorlagen können wie folgt verwendet werden:
{{Beispielvorlage1|Kogoro Mori|Yoshihito Kureko}}
-> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.{{Beispielvorlage2|Detektiv=Kogoro Mori|Täter=Yoshihito Kureko}}
-> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.
Das Ergebnis beider Vorlagen ist das gleiche. In Beispielvorlage1 ist jedoch implizit definiert, dass der Name des Detektivs immer als erster Parameter übergeben werden soll und der Name des Täters als zweiter Parameter. In Beispielvorlage2 hingegen ist über den zusätzlichen Parameternamen klar ersichtlich, welcher Parameter den Detektivnamen und welcher den Namen des Täters aufnimmt. In Beispielvorlage2 kann daher die Reihenfolge der Parameterübergabe ausgetauscht werden ohne die inhaltliche Aussage zu verändern, in Beispielvorlage1 geht dies nicht:
{{Beispielvorlage1|Yoshihito Kureko|Kogoro Mori}}
-> Nach Auffassung Yoshihito Kurekos ist der Täter Kogoro Mori.{{Beispielvorlage2|Täter=Yoshihito Kureko|Detektiv=Kogoro Mori}}
-> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.
Ob ein Parameter besser anonym oder mit einem Namen ausgezeichnet ist, entscheidet der Vorlagenentwickler bei Einführung des Parameters. Nachfolgende Hinweise können bei der Entscheidung helfen:
- Anonyme Parameter bieten sich an, wenn
- die Übergabe-Reihenfolge egal ist
- die Anzahl der übergebenen Parameter beliebig ist / nicht von vornherein eingeschränkt sein soll
- alle übergebenen Parameter gleich behandelt werden sollen
Ein gutes Beispiel hierfür sind Formatierungsvorlagen, die auf alle an sie übergebenen Parameter die gleiche Formatierungsvorgaben anwenden, bspw. den Text des Parameters als Link darstellen. In einer solchen Vorlage wird der erste Parameter gleich dem letzten behandelt und je nach Anwendungskontext wird an die Vorlage nur ein Parameter übergeben und ein anderes Mal sind es zwei oder mehr.
- Ausgezeichnete Parameter bieten sich an, wenn
- die Übergabe-Reihenfolge nicht egal ist
- ein Parameter dediziert angesprochen oder ausgewertet werden soll
- die übergebenen Parameter unterschiedlich behandelt werden sollen
Ein gutes Beispiel hierfür sind die Infoboxen. Hier wird ein Wert einem bestimmten Parameter zugewiesen, der innerhalb der Vorlage dediziert ausgewertet werden soll. Beispielsweise soll in der Infobox für Manga-Kapitel die Kapitelnummer nicht in dem Datumsfeld für die deutsche Erstveröffentlichung angezeigt werden. Durch die Parameternamen wird einerseits der Vorlagencode selbst besser lesbar und andererseits die Verwendung der Vorlage einfacher; Verwechslungen zwischen einzelnen Parametern können besser vermieden werden.
Wird ein Parameter nachträglich in eine bestehende Vorlage eingefügt, bietet es sich an, diesen entsprechend der anderen bereits vorhandenen Parameter ebenfalls anonym bzw. ebenfalls ausgezeichnet mit einem Namen zu definieren.
Hinweis: Nachträglich eingeführte Parameter werden auf Seiten, die die Vorlage bereits eingebunden hatten nicht automatisch verwendet, sofern kein Standardwert definiert ist. Es müssen demnach entweder die verwendenden Seiten entsprechend geändert werden oder die Änderung der Vorlage hat zunächst keine Auswirkungen auf einbindende Seiten.
Parameter mit Vorbelegung
Ein Parameter kann innerhalb der Vorlage mit einem Standardwert vorbelegt werden. Hierzu wird der Parameter wie folgt angegeben: {{{<Parametername>|<Standardwert>}}}
. Der senkrechte Strich („|“) trennt hierbei den Namen des Parameters und dessen Vorbelegung. Eine Vorbelegung kann zum Beispiel in Textbausteinen dazu verwendet werden, dass diese auch bei fehlender Parameterübergabe einen Sinn ergeben.
Parameter mit Vorbelegung
Beispielvorlage2: Nach Auffassung {{{Detektiv|des Detektiv}}}s ist der Täter {{{Täter|noch unbekannt}}}.
{{Beispielvorlage2|Detektiv=Kogoro Mori|Täter=Yoshihito Kureko}}
-> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.{{Beispielvorlage2}}
-> Nach Auffassung des Detektivs ist der Täter noch unbekannt.
Hinweis: Wird ein Parameter an mehreren Stellen in der Vorlage verwendet, macht es Sinn, diesen entweder immer oder nie mit einem Standardwert zu belegen, es ist jedoch nicht erforderlich.
Leere Parameter
Ein Parameter darf auch leer sein. Ein leerer Parameter ist aber nicht automatisch gleichbedeutend mit einer leeren Zeichenkette, also einem Leertext. Damit ein leerer Parameter bei Verwendung einer Vorlage auch als leerer Text angezeigt wird, wird dieser als Standardwert vorbelegt. Hierzu wird der Parameter wie folgt angegeben: {{{<Parametername>|}}}
.
Leere Parameter zulassen
Beispielvorlage4: Herzlich Willkommen {{{Benutzername}}}.
Beispielvorlage5: Herzlich Willkommen {{{Benutzername|}}}.
{{Beispielvorlage4}}
-> Herzlich Willkommen {{{Benutzername}}}.{{Beispielvorlage5}}
-> Herzlich Willkommen .
Erweiterte Dynamisierung: Variablen, Funktionen, Parser-Funktionen, Rekursionen
In diesem Abschnitt werden weitere gängige Konzepte und Erweiterungen vorgestellt, die beider Erstellung von Vorlagen hilfreich sind. Da viele der nachfolgend vorgestellten Themen generell für Wiki-Systeme gültig und im Internet bereits gute dokumentiert sind, wird für die vertiefende Lektüre in der Regel auf diese verwiesen.
Variablen
- Was ist das
- Ziel, Zweck
- Beispiel im Wiki
- weiterführende Links
Funktionen
- Was ist das
- Ziel, Zweck
- Beispiel im Wiki
- weiterführende Links
Parser-Funktionen
- Was ist das
- Ziel, Zweck
- Welche sind hier im Wiki aktiv
- Beispiel im Wiki
- weiterführende Links
Rekursionen
- Was ist das
- Ziel, Zweck
- Beispiel im Wiki
- weiterführende Links
{{{refVorlageDokumentieren}}}
Vorlagen sind bei der Erstellung oder Bearbeitung immer entsprechend zu dokumentieren. Dies erhöht einerseits die Wartbarkeit der Vorlage selbst und andererseits wird damit der Anwender einer Vorlage bei der Einbindung auf einer Seite unterstützt.
- Beispiel 1: Vorlage:Team: Neben den einleitenden Bemerkungen sind ein Abschnitt zur Verwendung und eine Vorschau mit einigen Anwendungsbeispielen enthalten. Die Verwendung der Vorlage ist ausführlich anhand mehrerer Anwendungsszenarien erläutert.
- Beispiel 2: Vorlage:Infobox Kapitel: Neben den einleitenden Bemerkungen sind ein Abschnitt zur Verwendung mit Parameterübersicht und eine Kopiervorlage enthalten.
Bei Erstellung einer Vorlage sind die folgenden Informationen anzugeben:
- Beschreibung, was die Funktion und das Ziel der Vorlage ist
- Verwendungshinweis
- Wann ist die Vorlage einzusetzen bzw. wann nicht
- Wie kann die Vorlage verwendet werden
- Falls die Vorlage parametrierbar ist: Übersicht über die möglichen Parameter der Vorlage mit kurzer Erläuterung
- Vorschau / Anwendungsbeispiele (optional)
- Kopiervorlage (optional)
Bei Bearbeitung einer Vorlage sind folgende Änderungen zu dokumentieren:
- Neue Parameter sind in die Parameterübersicht mit einer kurzen Erläuterung aufzunehmen bzw. es ist eine Parameterübersicht anzulegen
- Entfallene Parameter sind in der Parameterübersicht als obsolet oder veraltet zu kennzeichnen
- Geänderte oder ergänzte Funktionsweisen sind zu beschreiben und ggf. mit einem Beispiel zu verdeutlichen
- Bereits vorhandene Anwendungsbeispiele oder Kopiervorlagen sind auf Korrektheit zu prüfen und ggf. an die durchgeführten Änderungen anzupassen
- Nach dem Speichern der durchgeführten Änderungen an der Vorlage ist die Vorschau zu prüfen (insbesondere bei Textbausteinen wichtig) und ggf. durch ein touch, ein erneutes Speichern ohne Änderungen zu tätigen, zu aktualisieren
Die Dokumentation kann in der Regel auf der Vorlagenseite selbst erfolgen. Damit sie nicht auf den einbindenden Seiten angezeigt wird, wird die Dokumentation in einen noinclude-Block eingeschlossen oder außerhalb der onlyinclude-Blöcke gesetzt.
Ausführliche oder sehr komplexe Dokumentationen können auch auf eine Unterseite zur Vorlage ausgelagert werden. Die Dokumentation soll in diesem Fall auf einer Seite mit dem Titel Vorlage:<Name der Vorlage>/Doku
erstellt werden. Eingebunden wird die Dokumentation dann wie eine Vorlage auf der Seite der Vorlage, die sie dokumentiert:
<noinclude>{{Vorlage:<Name der Vorlage>/Doku}}</noinclude>
.
Kategorisierung
Abschließend ist die Vorlage zu kategorisieren. Hierfür sind eine oder mehrere passende Unterkategorien aus Kategorie:Vorlage anzugeben. Im Abschnitt "" sind die einzelnen Unterkategorien in ConanWiki im Überblick dargestellt. Diese Kurzbeschreibungen finden sich auch auf den Seiten der jeweiligen Kategorien und sollen beim Einordnen oder Finden von Vorlagen unterstützen. Eine Einsortierung von Vorlagen in Artikelkategorien ist nicht erwünscht.
Bei der Kategorisierung von Vorlagen ist zu beachten, dass dies innerhalb von noinclude-Blöcken oder außerhalb von onlyinclude-Blöcken geschieht, damit nur die Vorlage der Kategorie zugeordnet wird und nicht alle Seiten, in denen die Vorlage verwendet wird: <noinclude>[[Kategorie:Vorlage:<Unterkategorie>]]</noinclude>
.
Soll eine Sortierung vorgegeben werden, ist der Sortierschlüssel direkt beim Setzen der Kategorie anzugeben: [[Kategorie:Vorlage:<Unterkategorie>|<Sortierschlüssel>]]
.