Dieses Element ermöglicht die Generierung von Angaben über Vorlagen, mit denen sich gültige Einbindungen überprüfen lassen und automatische Dokumentationen und Anwendungshinweise erstellt werden können.
Grundprinzip
BearbeitenDie als TemplateData vereinbarten Informationen über den Zweck der Vorlage und vor allem die detaillierte Beschreibung der Parameter haben zwei Anwendungsbereiche:
- Erstellung einer standardisierten Dokumentationsseite oder eines wesentlichen Teils davon
- Auswertung und automatische Generierung von Eingabeformularen für die Parameter nebst automatisierter Gültigkeitsprüfung der Werte schon bei der Eingabe. Dafür gibt es zurzeit vier Anwendungen:
- VisualEditor – aktueller Anlass für die Entwicklung.
- Vorlagenmeister – früherer Ansatz, über eine XML-Spezifikation; mit einem Eingabeformular zum Einfügen in den Quelltext der Wikiseite. Falls keine (detailliertere) XML-Beschreibung für eine bestimmte Vorlage vorhanden ist, wird ersatzweise die TemplateData-Struktur zur Produktion eines Eingabeformulars und zur Gültigkeitsprüfung der Eingabedaten herangezogen.
- Vorlagenassistent (Wizard) – Werkzeugleiste WikiEditor „2010“
- VE-Quelltext – Werkzeugleiste „2017“
Das Grundprinzip wurde üblichen Software-Dokumentationswerkzeugen entnommen; ist etwa an die mit javadoc zu gewinnenden Informationen angelehnt.
Technisch werden die TemplateData in einem <templatedata>...</templatedata>
-Element kodiert, das unter JSON beschrieben wird. Der Inhalt wird von der Software automatisch in Form einer Tabelle dargestellt, durch die im Prinzip die hergebrachte Parameterdokumentation ersetzt werden kann. Voraussetzung ist die syntaktische und semantische Richtigkeit.
Diese werden mit der Vorlagendefinition in Verbindung gebracht. In der deutschsprachigen Wikipedia sollte dies immer auf der Dokumentationsseite /Doku geschehen und nicht direkt im Quelltext der Vorlagenprogrammierung.
- In der Versionsgeschichte der eigentlichen Programmierung sollen ausschließlich Änderungen an der wirksamen Programmierung erscheinen, niemals jedoch nachrangige Formulierungsverbesserungen an der Dokumentation; diese gehört deshalb auf die Unterseite /Doku.
Dabei wird das Element <templatedata>…</templatedata>
immer in eine Vorlage:TemplateData eingeschlossen, die für eine Umrahmung und eine Verlinkung mit dieser Hilfeseite sorgt. Besser ist es, den JSON-Code in den Vorlagenparameter JSON=
zu schreiben, was voraussetzt, dass keine die Vorlagensyntax störenden Zeichen enthalten sind.
Die Inhalte von TemplateData sind dafür vorgesehen, in universell nutzbarem Format einfache und kurze Texte bereitzustellen; etwa in Tooltips oder automatisierten Dokumentationssystemen unabhängig vom Wikiprojekt. Elaborierte und komplexe Darstellungen müssen nach wie vor in gesondertem Wikitext aufbereitet werden.
Formulargestützte Erstellung und Bearbeitung
BearbeitenDieses von MediaWiki bereitgestellte Werkzeug ist nur bei der Ersterstellung einer TemplateData-Dokumentation verwendbar.
- Es schreibt bevorzugt in die Programmierungsseite.
- In der deutschsprachigen Wikipedia werden aber längere Dokumentationen nicht in die Programmierungsseite geschrieben, sondern in eine gesonderte Unterseite
/Doku
, damit in der Versionsgeschichte nur für die einbindenden Seiten wirksame Veränderungen der Programmierung erscheinen, und nicht jede Schreibfehlerberichtigung der Dokumentation den Neuaufbau von womöglich Tausender einbindender Seiten nach sich zieht. - Weiterhin wird eine erweiterte Syntax und ein Vorlagenparameter benutzt; deshalb müssen spätere Änderungen in JSON eingepflegt werden; oder aber es wird eine spezielle Vorlagensyntax benutzt: Vorlage:TemplateData/JSON.
Siehe dazu /MediaWiki-Editor.
Struktur des TemplateData-Objekts
BearbeitenSiehe dazu /JSON.
Hilfsmittel und Hilfen
BearbeitenDie Verwendung von TemplateData
in dieser Wikipedia wird protokolliert unter:
- Special:PagesWithProp/templatedata
- Kategorie:Vorlage:mit TemplateData – Besser lesbar, navigierbar und würde keine Weiterleitungen aufzählen.
- Die Kategorisierung zählt nur Verwendungen auf, die in Vorlage:TemplateData eingeschlossen sind. Die Aufzählung der Seiten mit der templatedata-Eigenschaft auf der Spezialseite muss identisch sein mit den Seiten in der Kategorie.
Generatoren
BearbeitenAlternativ zum eingebauten Vorlagendokumentations-Editor:
- liefert das Benutzerskript jsonXMLutils aus der Vorlagenprogrammierung oder aber der Kopiervorlage einer älteren Dokumentation oder dem Quelltext einer beliebigen Einbindung ein Grundgerüst.
- Nebenbei formatiert es auch den JSON-Code und analysiert ihn auf bestimmte mutmaßliche inhaltliche Fehler.
- Eine XML-Struktur für den Vorlagenmeister kann aus jeder mit TemplateData ausgestatteten Vorlagendokumentation generiert werden.
- kann mit dem vorübergehendem Einfügen von
{{subst:TemplateDataGenerator}}
in die Dokumentationsseite ebenfalls ein Grundgerüst generiert werden. - gibt es ein Benutzerskript in der französisch- und englischsprachigen Wikipedia mit einem alternativen Dialogmenü: fr:User:Ltrlg/scripts/TemplateDataEditor.js bzw. en:User:NicoV/TemplateDataEditor. Dieses befindet sich jedoch auf einem älteren Stand und unterstützt daher nicht alle Datentypen oder den „Vorgeschlagen“-Parameter (suggested), dafür aber den deprecated- und den inherited-Parameter.
Bei anhaltenden Problemen hilft die Technik-Werkstatt weiter.
Internationalisierung
BearbeitenFür Vorlagen, die projektweit verwendet werden, kann das TemplateData-Objekt als Commons-Datensatz unter Data:Templatedata/<Vorlagenname>.tab
(ohne die spitzen Klammern) abgelegt werden und dann wie folgt in die jeweiligen Sprachversionen eingebunden werden:
{{#invoke:TNT|doc|Vorlagenname}}
Dabei wird automatisch die passende Übersetzung ausgegeben. Noch nicht in eine Sprache übersetzte Vorlagen können entsprechend auch auf Commons bearbeitet werden.
So liegt die Dokumentation für Vorlage:Graph:Lines unter commons:Data:Templatedata/Graph:Lines.tab in verschiedenen Sprachen vor und wird über {{#invoke:TNT|doc|Graph:Lines}}
hier eingebunden.
Genauso verfährt aber auch die hier verwendete Vorlage:TemplateData – darüber können ebenfalls global geteilte vielsprachige Definitionen weltweit zentral vorgehalten werden. Die Dokumentation zur Vorlage:Interwiki redirect stammt aus commons:Data:TemplateData/Soft redirect.tab und würde auch bei uns auf italienisch angezeigt – wozu TNT nicht in der Lage ist.
Sonstiges
BearbeitenDie TemplateData-Verwendung wurde 2013 weltweit gestartet.
Zu technischen Details der Programmierung siehe Hilfe:TemplateData/JSON #Sonstiges.
Wenn du Wünsche hast, dann kannst du es über Phabricator mitteilen oder mitteilen lassen. Das gleiche gilt für Bugmeldungen.
Weitere Informationen
Bearbeiten- Hilfe:TemplateData/VisualEditor – Beschreibung des Zusammenspiels der Parametrisierung im TemplateData mit der Auswirkung auf die Ausgabe und Bearbeitungsfunktionen im VisualEditor.
- Vorlage:TemplateData – Kennzeichnung generierter Dokumentationsblöcke