Module:User:ɞɞ/sandbox/Dok/doc

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

This is the documentation page for Module:User:ɞɞ/sandbox/Dok

Modul für Vorlagendokumentation[edit]

Dieser Modul ist zur Verwendung in Vorlagen gedacht und soll die Dokumentation von Vorlagen so weit wie möglich automatisieren.

Innerhalb der Vorlage wird der erzeugende Wikitext angezeigt (mit gewissen Einschränkungen, die in XML-Notation geschriebene Tags und dadurch erzeugte Strip Markers betreffen), sodass man den Inhalt der Vorlage analysieren kann, ohne die Bearbeiten-Seite aufrufen zu müssen.

Die eigentliche Dokumentation wird von einer Unterseite der Vorlage eingebunden, die standardmäßig doc genannt wird, dieser Wert kann mit dem Paramter doc geändert werden. Wenn ich nachfolgend von der Dokumentationsseite rede, ist diese Unterseite gemeint.

Die Vorlagendokumentation kommt ohne zusätzliche Vorlagen, Module oder sonstige Wiki-Elemente aus. Einzige Ausnahme sind zwei Icons im PNG-Format, die vorhanden sein sollten: und , wie diese konkrekt aussehen sollen, bleibt dir überlassen.

In die Dokumentationsseite können Anwendungsbeispiele der Vorlage eingebunden werden, die sich beim Ändern der Vorlage automatisch aktualisieren. Auf der Vorlagenseite werden diese Beispiele angezeigt, sodass die Vorlage zugleich die Auswirkungen anzeigt. Ich empfehle, die Vorlage so zu gestalten, dass beim Fehlen von Eingabeparametern eine sinnvolle Ausgabe erzeugt wird.

Die Dokumentationsseite besteht aus mehreren Abschnitten. Zunächst wird die Wirkungsweise der Vorlage erklärt, anschließend wird eine Übersichtstabelle mit den Parametern generiert sowie eine Kopiervorlage mit einer Auflistung aller Parameter. Danach folgen Anwendungsbeispiele, der Wikicode der Vorlage sowie Links zur Vorlagenverwendung und -unterseiten.

DAs Anlegen einer Preloadseite für die Dokumentation erleichtert die Erstellung der Dokumentationsseite, ist aber nicht zwingend erforderlich.

Einbindung in die Vorlage[edit]

Das Einbinden des nachfolgenden Codes erzeugt eine automatisierte Vorlagendokumentation.

In die Vorlage folgenden Code einfügen:

{{#invoke:User:ɞɞ/sandbox/Dok|doc}}

Es können Parameter ergänzt werden.
Parameterliste
x
NameBeschreibungStandardStatus
vorlageName der Vorlageaufrufende Seiteoptional
preloadName des Vorlagenmusters für die Neuerstellung derDocumentation/preload-docoptional
Dokumentationsseite
docName der Unterseite, die die Dokumentation enthältdocoptional
catKategorie, in die die Vorlage eingeordnet wirdVorlagenoptional
alternativ: kat, kategorie (in dieser Reihenfolge)
nocatwenn keine automatische Kategorisierung erfolgen sollfalseoptional
alternativ: nokat
showwenn die Vorlage nicht verborgen wird, show=1falseoptional
alternativ: zeigen=1

Einbindung in die Dokumentationsunterseite[edit]

In die passend benannte Unterseite der Dokumentation (Parameter doc) folgenden Code einfügen:

{{#invoke:User:ɞɞ/sandbox/Dok|dokuseite}}
<onlyinclude>
{{#invoke:Dok|doku
|text=erzeugt eine sinnvolle Vorlage
|count=3
|p1=|t1=|d1=|m1=1
|... je nachdem wie viele Parameter (count)
|aw1= ... Anwendungsbeispiel 1
|aw2= ... Anwendungsbeispiel 2 (derzeit bis zu 10 Stück möglich)
|... weitere Parameter lt. Parameterliste
}}</onlyinclude>

Für jedes Anwendungsbeispiel kann mittels der Parameter render⧼n⧽ bzw. expand⧼n⧽ eingestellt werden, ob der Wikitext der Vorlage angezeigt und die Vorlage gerendert werden soll oder nicht.

Mittels des Parameters raw⧼n⧽ kann gesteuert werden, ob die Vorlage im „Raw“-Format ausgeführt werden soll. Wird raw⧼n⧽ mit einem beliebigen Wert belegt, so wird der Inhalt des Parameters aw⧼n⧽ so ausgeführt, wie er dort steht. Allerdings dürfen keine doppelten geschwungenen Klammern und Pipezeichen vorkommen, statt der doppelten Klammern müssen einfache angegeben werden, statt des Pipezeichens das Rufzeichen (meinen Recherchen zufolge ist das Wikizeichen {{!}} ebenfalls möglich). Ein Beispiel würde folgendermaßen aussehen: aw1={vorlage!parameter1=wert1!parameter2=wert2! ... } (oder aw1={vorlage{{!}}parameter1=wert1{{!}}parameter2=wert2{{!}} {weitere Vorlage{{!}}... } }). Wenn innerhalb der Vorlage mehrere Klammern aufeinander folgen, müssen sie durch Leerzeichen voneinander getrennt werden.

Parameterliste
x
NameBeschreibungStandardStatus
counthöchster verwendeter Index n für Parameter, es dürfen Lücken in der Numerierung vorkommen0optional
vorlageName der Vorlageaufrufende Rootseiteoptional
textBeschreibungstextsinnfreier Leertextoptional
trennzeichenTrennzeichen für Vorlagenaufruf z.B. *; oder ,optional
expandIndikator, ob der Vorlageninhalt nicht als Wikitext angezeigt werden solltrueoptional
expand=no oder expand=false/nein/n unterdrückt die Anzeige
renderIndikator, ob die Vorlage ausgeführt werden wolltrueoptional
beide Indikatoren auf „nein“ setzen würde wenig Sinn ergeben, ist aber möglich
klappbarIndikator wenn Vorlageninhalt eingeklappt können werden solltrueoptional
mit klappbar⧼n⧽=ja/nein kann die Einstellung für das n-te Anwendungsbeispiel geändert werden
geklappt=ja klappt das Ergebnis beim Laden der Seite ein, geklappt⧼n⧽ wie klappbar
rubrikVorlagengruppeAlleListenoptional
es wird eine (parameterlose) Vorlage mit diesem Namen in die Dokumentation eingefügt (sofern sie existiert), diese kann z.B. eine automatische Kategorisierung sowie eine Liste aller Vorlagen in dieser Gruppe enthalten
aw⧼n⧽Anwendungsbeispiel: aw⧼n⧽=name=bumsti, familienname=muster, plz=4711leeroptional
wird ausgeführt als {{vorlage|name=bumsti|familienname=muster|plz=4711}}
das Trennzeichen wird in das magische Zeichen | umgewandelt und die Vorlage entsprechend dieser Eingabe aufgerufen, dadurch ist weitgehende Flexibiliät möglich; aw1, aw2, ... , aw10 derzeit implementiert
p⧼n⧽Parameter ⧼n⧽, n kann eine beliebige ganze Zahl seinoptional
t⧼n⧽Beschreibung des Parameters ⧼n⧽, alternativ: desc⧼n⧽Beschreibung fehltoptional
d⧼n⧽Voreinstellung des Parameters ⧼n⧽, alternativ: def⧼n⧽leeroptional
m⧼n⧽Parameter ⧼n⧽ erforderlich: m⧼n⧽=1, alternativ: mdt⧼n⧽optionaloptional
f⧼n⧽Fortsetzungszeile zur Parameterbeschreibung, alternativ: fort⧼n⧽leeroptional
g⧼n⧽2. Fortsetzungszeile zur Parameterbeschreibung, alternativ: gort⧼n⧽leeroptional
expand⧼n⧽mit expand⧼n⧽ kann der oben stehende Parameter expand für das n-te Beispiel überschrieben werdenexpandoptional
expand0=f unterdrückt die Anzeige der Vorlagenanwenung ohne Parameter
render⧼n⧽mit render⧼n⧽ kann der oben stehende Parameter render überschrieben werdenrenderoptional
render0=f unterdrückt die Ausführung der Vorlagenanwenung ohne Parameter
raw⧼n⧽Parameterinhalt als komplette Vorlage übernehmenleeroptional
geschwungene Klammern müssen maskiert werden; öffnend: \{, schließend:}/
das Pipe-Zeichen | muss durch Rufzeichen ersetzt werden
aw0Vorlage ohne Parameter expandieren/rendern: ja/neinjaoptional
tabwidthGesamtbreite der Parametertabelle80%optional
parmwidthBreite der Namensspalte14%optional
descwidthBreite der Beschreibungsspalte50%optional
defwidthBreite der Spalte mit der Voreinstellung25%optional
mandwidthBreite der Statusspalte (optional/erforderlich)16%optional

Vorschlag für die Preload-Seite[edit]

Der Name der Vorlagenseite (die durch die Vereinfachung per Lua beinahe schon überflüssig geworden ist) für die Dokumentationsunterseite kann per Parameter gewählt werden und lautet standardmäßig Vorlage:Documentation/preload-doc. Nachfolgend ein Vorschlag für eine mögliche Vorbelegung.

Vorlage für die Vorlagendokumentations-Unterseite Vorlage:Documentation/preload-doc <includeonly><onlyinclude> {{#invoke:Dok|dokuseite}} <only<includeonly/>include>{{#invoke:Dok|doku |vorlage={{subst:BASEPAGENAME}} |p1=1|t1=|d1=|m1=|f1= |p2=2|t2=|d2=|m2=|f2= |count= |text=erzeugt |aw1=parameter wie in der Liste angeführt getrennt durch , oder ; |rubrik=AlleListen |tabwidth= |descwidth= |namewidth= |defwidth= |mandwidth= |norender= |noexpand=}} </only<noinclude></noinclude>include></onlyinclude></includeonly> <includeonly><onlyinclude>[[Category:Dokumentation]]</onlyinclude></includeonly> {{#invoke:Dok|showme}}