Benutzer:Rikku/Test2: Unterschied zwischen den Versionen

11.798 Bytes hinzugefügt ,  14. April 2014
+parameter definieren, dokumentation, kategorisierung;
KKeine Bearbeitungszusammenfassung
(+parameter definieren, dokumentation, kategorisierung;)
Zeile 84:
 
[[Kategorie:Vorlage Infobox|Mangaband]][[Kategorie:Vorlage:Band]]
</noinclude>--><noinclude>{{Hilfe}}
<!--
Definierte Variablen in dieser Hilfeseite:
Zeile 129:
* Sonst: das Präfix für den Namensraum muss ebenfalls mit angegeben werden: <code><nowiki>{{<Namensraum>:<Name der Vorlage>}}</nowiki></code>.
 
DasDass eine Seite als Vorlage verwendet wird, obwohl sie nicht im Vorlagen-Namensraum liegt, kann bei Vorlagen-Tests sinnvoll sein, wenn ein Benutzer eine neue Vorlage zunächst in seiner persönlichen Sandbox entwickelt und testet. Textbausteine, Formatierungshilfen oder Funktionen, die als Vorlage in Seiten in {{SITENAME}} eingebunden und aktiv verwendet werden sollen, sind jedoch im Vorlagen-Namensraum zu erstellen bzw. nach den persönlichen Tests dorthin zu verschieben.
 
=== Verwenden von Parametern ===
In dem vorangegangenen Abschnitt "Was ist eine Vorlage{{#var:refVorlageErlaeuterung}}" wurde bereits angesprochen, dass Vorlagen nicht nur statische Textbausteine enthalten müssen. Dass eine Vorlage in einem gewissen Rahmen individualisiert und an den Inhalt der Seite angepasst werden kann, auf der sie eingebunden wird, wird über ''Parameter'' erreicht. Ein Parameter ist hierbei ein definierter Platzhalter innerhalb der Vorlage, der beim Einbinden der Vorlage mit einem Wert belegt werden kann. Ein Beispiel hierfür ist erneut die Willkommen-Vorlage, mit der ein neu angemeldeter Benutzer wie folgt begrüßt werden kann: <code><nowiki>{{subst:Willkommen|~~~~}}</nowiki></code>.
 
In diesem Beispiel trägt die Vorlage selbst den Namen "Willkommen" und wird substantiviert eingebunden. Als Parameter wird die eigene [[Hilfe:Signatur|Signatur]] mitgegeben. Der neu angemeldete Benutzer bekommt dadurch, neben dem Willkommenstext aus der Vorlage, angezeigt, wann und von wem er begrüßt wurde.
Zeile 164:
* sowohl auf der Vorlagenseite als auch auf den Seiten die die Vorlagen einbinden sichtbar ist.
 
; <tt><nowiki><&lt;onlyinclude></nowiki></tt>
: Wenn die Vorlage direkt betrachtet wird, haben <code><nowiki><&lt;onlyinclude></nowiki></code> und <code><nowiki><&lt;/onlyinclude></nowiki></code> 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. Mit <code><nowiki><&lt;onlyinclude></nowiki></code> können [[{{FULLPAGENAME}}#{{#var:refVorlageDokumentieren}}|Dokumentationen]] und [[Hilfe:Kategorien|Kategorien]] in Vorlagen eingefügt werden, ohne dass diese in den Artikeln auftauchen. Es können auch mehrere ''nicht-verschachtelte'' <code><nowiki><&lt;onlyinclude></nowiki></code>-Blöcke in einer Vorlage stehen.
; <tt><nowiki><&lt;includeonly></nowiki></tt>
: Alles, was in einer Vorlage zwischen <code><nowiki><&lt;includeonly></nowiki></code> und <code><nowiki><&lt;/includeonly></nowiki></code> steht, wird nur dann angezeigt, wenn die Vorlage auf einer anderen Seite eingebunden wird. Mit <code><nowiki><&lt;includeonly></nowiki></code> lassen sich zum Beispiel alle Seiten, die eine bestimmte Vorlage enthalten, automatisch einer Kategorie hinzufügen. <code><nowiki><&lt;includeonly></nowiki></code> kann auch innerhalb von <code><nowiki><&lt;onlyinclude></nowiki></code>-Blöcken stehen.
; <tt><nowiki><&lt;noinclude></nowiki></tt>
: Alles, was in einer Vorlage zwischen <code><nowiki>&lt;noinclude></nowiki></code> und <code><nowiki>&lt;/noinclude></nowiki></code> steht, wird nur dann angezeigt, wenn die Vorlage selbst betrachtet wird und nicht auf einer Seite, auf der die Vorlage eingebunden ist. <code><nowiki><onlyinclude></nowiki></code> sollte zum Abgrenzen des eigentlichen Vorlagentextes von der Dokumentation, den Kategorien und Interwikilinks bevorzugt werden. <code><nowiki><&lt;noinclude></nowiki></code> kann auch innerhalb von <code><nowiki><&lt;onlyinclude></nowiki></code>-Blöcken stehen.
 
Wird in der Vorlage keine Einbindungsart 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 Einbindungsarten:
{| class="roundtable wiki" style="width:95%; margin:10px;"
! style="width:22%;" | Tag-Kombination
! style="width:16%;" | Auf der Vorlagenseite
! style="width:20%;" | Auf der einbindenden Seite
! Bemerkung
|-
Zeile 188:
| &lt;onlyinclude>…&lt;/onlyinclude> || sichtbar || sichtbar [3] || [3] Text außerhalb des ''onlyinclude''-Blocks wird nicht eingebunden.
|-
| Text 1<br />&lt;onlyinclude>Text 2<br />&lt;includeonly>Text 3&lt;/includeonly><br />&lt;noinclude>Text 4&lt;/noinclude><br />&lt;/onlyinclude>Text 5 || Text&nbsp;1:&nbsp;sichtbar,<br />Text&nbsp;2:&nbsp;sichtbar,<br />Text&nbsp;3:&nbsp;nicht sichtbar,<br />Text&nbsp;4:&nbsp;sichtbar,<br />Text&nbsp;5:&nbsp;sichtbar || Text&nbsp;1:&nbsp;nicht sichtbar,<br />Text&nbsp;2:&nbsp;sichtbar,<br />Text&nbsp;3:&nbsp;sichtbar,<br />Text&nbsp;4:&nbsp;nicht sichtbar,<br />Text&nbsp;5:&nbsp;nicht sichtbar ||
|}
 
Nachfolgend einige Beispiele für ''nicht'' sinnvolle Einbindungsarten:
=== Dynamisierung: Parameter definieren ===
{| class="roundtable wiki" style="width:95%; margin:10px;"
=== Dynamisierung: Variablen, Funktionen, Parser-Funktionen, Rekursionen ===
! style="width:22%;" | Tag-Kombination
! style="width:16%;" | Auf der Vorlagenseite
! style="width:20%;" | Auf der einbindenden Seite
! Bemerkung
|-
| &lt;includeonly>Text 1&lt;/includeonly><br />&lt;onlyinclude>Text 2&lt;/onlyinclude> || Text&nbsp;1:&nbsp;nicht sichtbar,<br />Text&nbsp;2:&nbsp;sichtbar || Text&nbsp;1:&nbsp;nicht sichtbar,<br />Text&nbsp;2:&nbsp;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.
|-
| &lt;includeonly>&lt;onlyinclude>...<br />&lt;/onlyinclude>&lt;/includeonly> || nicht&nbsp;sichtbar || sichtbar || Textblöcke innerhalb von ''includeonly''-Blöcke 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 "{{#var: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:
* <code><nowiki>{{{Y}}}</nowiki></code>, wobei Y eine fortlaufende Nummer beginnend bei Eins ist, kennzeichnet einen ''anonymen Parameter''.
* <code><nowiki>{{{<Parametername>}}}</nowiki></code> 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:
 
{{Vorlage:Absatzrahmen (Formatierung)|hinweis=Anonyme und ausgezeichnete Parameter definieren|farbcode_rot=113|farbcode_gruen=163|farbcode_blau=212|datei=stern.png}}
<pre>Beispielvorlage1:
Nach {{{1}}}s Auffassung ist der Täter {{{2}}}.
</pre>
<pre>Beispielvorlage2:
Nach {{{Detektiv}}}s Auffassung ist der Täter {{{Täter}}}.
</pre>
Die beiden Beispielvorlagen können wie folgt verwendet werden:
* <code><nowiki>{{Beispielvorlage1|Kogoro Mori|Yoshihito Kureko}}</nowiki></code> -> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.
* <code><nowiki>{{Beispielvorlage2|Detektiv=Kogoro Mori|Täter=Yoshihito Kureko}}</nowiki></code> -> 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:
* <code><nowiki>{{Beispielvorlage1|Yoshihito Kureko|Kogoro Mori}}</nowiki></code> -> Nach Auffassung Yoshihito Kurekos ist der Täter Kogoro Mori.
* <code><nowiki>{{Beispielvorlage2|Täter=Yoshihito Kureko|Detektiv=Kogoro Mori}}</nowiki></code> -> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.
&nbsp;
</div>
 
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 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 verwenden, 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: <code><nowiki>{{{<Parametername>|<Standardwert>}}}</nowiki></code>. 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.
 
{{Vorlage:Absatzrahmen (Formatierung)|hinweis=Parameter mit Vorbelegung|farbcode_rot=113|farbcode_gruen=163|farbcode_blau=212|datei=stern.png}}
<pre>Beispielvorlage2:
Nach {{{Detektiv|des Detektiv}}}s Auffassung ist der Täter {{{Täter|noch unbekannt}}}.
</pre>
* <code><nowiki>{{Beispielvorlage2|Detektiv=Kogoro Mori|Täter=Yoshihito Kureko}}</nowiki></code> -> Nach Auffassung Kogoro Moris ist der Täter Yoshihito Kureko.
* <code><nowiki>{{Beispielvorlage2}}</nowiki></code> -> Nach Auffassung des Detektivs ist der Täter noch unbekannt.
&nbsp;
</div>
 
''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: <code><nowiki>{{{<Parametername>|}}}</nowiki></code>.
 
{{Vorlage:Absatzrahmen (Formatierung)|hinweis=Leere Parameter zulassen|farbcode_rot=113|farbcode_gruen=163|farbcode_blau=212|datei=stern.png}}
<pre>Beispielvorlage4:
Herzlich Willkommen {{{Benutzername}}}.
</pre>
<pre>Beispielvorlage5:
Herzlich Willkommen {{{Benutzername|}}}.
</pre>
* <code><nowiki>{{Beispielvorlage4}}</nowiki></code> -> Herzlich Willkommen {{{Benutzername}}}.
* <code><nowiki>{{Beispielvorlage5}}</nowiki></code> -> Herzlich Willkommen .
&nbsp;
</div>
 
=== Erweiterte Dynamisierung: Variablen, Funktionen, Parser-Funktionen, Rekursionen ===
 
=== {{#var: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 kurzer 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 <code><nowiki>Vorlage:<Name der Vorlage>/Doku</nowiki></code> erstellt werden. Eingebunden wird die Dokumentation dann wie eine Vorlage auf der Seite der Vorlage, die sie dokumentiert:
:<code><nowiki>&lt;noinclude>{{Vorlage:<Name der Vorlage>/Doku}}&lt;/noinclude></nowiki></code>.
 
=== Kategorisierung ===
{{Siehe_auch|Hilfe:Kategorien#Grundlegendes|titel1=Hilfe zu Kategorien}}
Abschließend ist die Vorlage zu kategorisieren. Hierfür sind eine oder mehrere passende Unterkategorien aus [[:Kategorie:Vorlage]] anzugeben. Im Abschnitt "{{#var:refConanWikiVorlagen}}" sind die einzelnen Unterkategorien in {{SITENAME}} im Überblick dargestellt. Diese Kurzbeschreibung findet sich auch auf der Seite der jeweiligen Kategorie und soll 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 geschieht, damit nur die Vorlage der Kategorie zugeordnet wird und nicht alle Seiten, in denen die Vorlage verwendet wird: <code><nowiki>&lt;noinclude>[[Kategorie:Vorlage:<Unterkategorie>]]&lt;/noinclude></nowiki></code>
 
Soll eine Sortierung vorgegeben werden, ist der Sortierschlüssel direkt beim Setzen der Kategorie anzugeben:
:<code><nowiki>&lt;noinclude>[[Kategorie:Vorlage:<Unterkategorie>|<Sortierschlüssel>]]&lt;/noinclude></nowiki></code>
 
== {{#var:refConanWikiVorlagen}} ==
<!-- Beispiele
- Aufbau der Kategorie:Vorlage erläutern -> Infotexte sollten als Doku-Bausteine erstellt werden; diese können dann auch auf den jeweiligen Kategorie:Seiten eingebunden werden-->
5.367

Bearbeitungen