Extension:TemplateEdit

The TemplateEdit extension allows users to edit used templates in a form and defining those forms based on the templates used inside the wiki. Creating new articles using templates is also supported.

Since writing a "real" grammar parser for MediaWiki markup is not an easy task, for now the parser provided below is only working for standard cases. As you can see in the comments of code, some Magic Words etc. are still missing.

The idea for this extension was given by users confused with large templates with documentation on a separate page. The editor allows presenting those in forms, resorting the parameters and removing used old or undefined parameters. The possibility of defining pick-lists also stops another source of typos.

Usage
Let us say, we used two nested templates in a page If we now define editors for those under Template:Example/Editor and Template:Logo/Editor, like this one:
 * Example Template=TITLE
 * Name=TEXT!MUST!Please enter the name here
 * Status=PICK!MUST!Status of the page!alpha;beta;released
 * Logo=TEXT!!Pleas use the Logo-Template here
 * Author=TEXT!!If you know him, enter the Author

If you now hit the new Link "Edit Templates" in your Toolbox, you receive something like this:



After selecting template Example, you will get an editor as defined above:



Help on Template Editor Definition (German only)
Wenn man möchte, dass der Inhalt einer Vorlage (nennen wir sie hier mal "Vorlage:Test") im Vorlageneditor editierbar ist, muss man eine Seite mit der Editor-Definition (unter dem Artikel "Vorlage:Test/Editor") erstellen.

Für jedes Feld und jede Überschrift muss darin eine Zeile geschrieben sein, damit das ganze besser lesbar, sollte man die Zeile mit einem Leerzeichen beginnen. Leerzeilen werden ignoriert und können zur Strukturierung und besseren Lesbarkeit benutzt werden.

Eine Zeile folgt dieser Syntax |Feldname=Typ!Pflichtfeld!Beschreibung!Auswahlwert1;Auswahlwert2;...!Standardwert!Migrationswert1;Migrationswert2;...

Feldname ist ein Pflichtfeld und entspricht dem Feld in der Vorlage bzw. dem Titel für die Sektion. Der Feldname muss auf jeden Fall eindeutig sein.

Typ ist ebenfalls ein Pflichtfeld und kann die folgenden Felder enthalten:
 * TITLE ist eine Sektionsüberschrift im Editor
 * TEXT ist ein einzeiliges Eingabefeld
 * TEXTAREA ist ein mehrzeiliges Eingabefeld
 * PICK ist eine Auswahlliste
 * NUMBER erwartet einen ganzzahligen Wert (wird im Moment noch nicht geprüft)
 * LINK erwartet einen Link zu einem Artikel inklusive Namensraum, wird im Zweifel von der Software entsprechend reduziert
 * LINKNONS erwartet einen Link zu einem Artikel inklusive Namensraum, wird im Zweifel von der Software entsprechend reduziert

Pflichtfeld wird beim Abspeichern nicht geprüft, zeigt aber im Editor dem Benutzer an, dass dies ein Pflichtfeld ist und zu füllen ist, dazu muss "MUST" eingegeben werden. In allen anderen Fällen ist das Feld kein Pflichtfeld.

Bei Beschreibung können weitere Erklärungen zum Feld eingetragen werden, allerdings Wiki-Syntax kann eingeschränkt benutzt werden (es dürfen keine "|" und "!" vorkommen, kompliziertere Eingaben könnten die Editor Anzeige zerlegen).

Wenn der Typ des Feldes eine Auswahlliste ist ("PICK"), können mit Semikolon getrennte Auswahlwerte eingegeben werden.

Mit dem Standardwert wird das Feld gefüllt, wenn es vorher noch nicht existiert hat, war es vorher leer, passiert das allerdings nicht.

Die ebenfalls durch Semikolon getrennten Migrationswerte geben Felder an, die - durch Leerzeichen getrennt - an dieses Feld angehängt werden können. Das ist vor allem dann hilfreich, wenn alte Vorlagen auf neue Migriert werden sollen (z.B. das "Vorname" und "Nachname" ins Feld "Langname" kopiert werden sollen).