Hilfe:TemplateData

Aus GEOWiki@LMU
Wechseln zu:Navigation, Suche

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

Die 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 zwei Anwendungen:
    1. VisualEditor – aktueller Anlass für die Entwicklung.
    2. 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.

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 {{TemplateData}} eingeschlossen, die für eine Umrahmung und eine Verlinkung mit dieser Hilfeseite sorgt.

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.

Vorlage:Anker Formulargestützte Erstellung und Bearbeitung

Dieses 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.

Schritt 1: Vorlagendokumentations-Editor aufrufen

Auf Vorlagen- oder deren Dokumentationsseiten kann das TemplateData-Element automatisch erzeugt werden indem man in den Bearbeitungsmodus geht und dort auf den Knopf Vorlagendaten verwalten am Seitenkopf klickt. Auf die gleiche Weise können bestehende TemplateData-Elemente nachträglich bearbeitet werden.

Wichtig: Wenn ein neues TemplateData-Element erstellt werden soll, sollte immer zuerst die Vorlagenseite entsprechend aufgerufen werden, da nur so der nachfolgende Editor alle Parameter der Vorlage automatisch finden und importieren kann. Das wie nachfolgend beschrieben am Ende erzeugte templatedata-Element sollte dann auf die entsprechende Dokumentationsseite kopiert und die Änderungen an der Vorlagenseite verworfen werden.

Schritt 2: Parameter automatisch importieren lassen oder manuell hinzufügen

Vorlage:Hilfe/dialog


Sprache Vorlage:Hilfe/clickbutton
Vorlagenbeschreibung (de)
Vorlage:Hilfe/inputarea
Vorgeschlagene Wikitext-Formatierung
Benutzerdefiniertes-Format-Zeichenfolge
Vorlage:Hilfe/inputarea
Vorlagenparameter
Datei:VisualEditor icon parameter-set-ltr.svg 5 vorgeschlagene Parameter hinzufügen
Inklusive: 1, 2, …

Vorlage:Hilfe/dialog

Nach dem Klick auf den Knopf erscheint der rechts abgebildete Vorlagendokumentations-Editor, der im Abschnitt Vorlagenparameter die gefundenen Parameter auflistet, die mit einem Klick auf vorgeschlagene Parameter hinzufügen importiert werden können, die dann alle wie rechts beispielhaft abgebildet aufgelistet werden.

Die einzelnen Abschnitte sind:

Sprache
Hiermit kann die Dokumentationssprache der Vorlage geändert werden in dem mit einem Klick auf Sprache hinzufügen eine neue hinzugefügt oder aus dem Auswahlliste eine bestehende ausgewählt werden kann. Generell ist dies jedoch nicht notwendig und sollte auf Deutsch belassen werden.
Vorlagenbeschreibung (de)
In diesem Abschnitt sollte eine knappe einzeilige Beschreibung der Vorlage eingegeben werden, die dann im VisualEditor neben dem jeweiligen Vorlagennamen aufgeführt wird.
Vorgeschlagene Wikitext-Formatierung
Hier kann festgelegt werden wie die Parameter im Quelltext erscheinen sollen. Mögliche Optionen sind, Inline (hintereinander), Block (untereinander) oder Benutzerdefiniert (gemischt).
Vorlagenparameter
Dieser wichtigste Abschnitt listet alle gefunden Parameter und deren Kurzbeschreibung auf, soweit vorhanden. Mit einem Klick auf den jeweiligen Parameter können bzw. bei einem neuen TemplateData-Element müssen hier die Zusatzinformationen (Metadaten) der Parameter hinzugefügt werden. Dabei erscheint ein weiteres Formular wie nachfolgend abgebildet.
Parameterreihenfolge
Hier werden alle gefundenen Parameter aufgeführt und deren Reihenfolge ausgegeben. Bei einem Parameterimport kann die Reihenfolge eventuell durcheinander geraten sein und nun mittels Drag and Drop korrigiert werden. Die Reihenfolge beeinflusst dabei nicht nur die Auflistung der Parameter im Vorlagen-Formular des VisualEditors, sondern wie es in den endgültigen Quelltext geschrieben wird. Die Reihenfolge der Parameter sollte daher stets mit der von evtl. Beispielen, Kopierschnipseln usw. der jeweiligen Vorlagendokumentation übereinstimmen.
Parameter hinzufügen
Am Ende des Formulars befindet sich ein weiter Knopf mit weitere Parameter hinzugefügt werden können, falls der automatische Import diese übersehen hat oder die Vorlage nachträglich um weitere Parameter ergänzt wurde.
Anwenden
Änderungen übernehmen und TemplateData-Element ausgeben.

Schritt 3: Parameter beschreiben

Das Vorlagenparameter-Formular besitzt folgende Felder:

Name
Bezeichnet den primären Namen des Parameters, d. h. denjenigen der am Ende ausgegeben werden soll. Unbenannte Parameter bekommen eine Nummer, die deren Position in der Vorlage angibt.
Aliasse
Listet die alternativen Namen des Parameters auf, wobei die einzelnen Einträge durch Kommas getrennt werden müssen. Hinweis: Wenn die Parameter automatisch importiert wurden, werden für alternative Namen im vorigen Formular ebenfalls Einträge angelegt, da die Importmechanismus nicht erkennen kann, ob ein Parametername eine Alternativbezeichnung oder ein eigenständiger Parameter ist. Diese falschen Parametereinträge müssen in diesem Formular mit einem Klick auf den Knopf Parameterinformationen entfernen am Formularende gelöscht werden und deren Namen im Aliasse-Feld des korrekten Parametereintrags eingetragen werden.
Bezeichnung
Falls von dem Parameternamen nicht automatisch auf die Funktion geschlossen werden kann, kann hier eine verständlichere Bezeichnung angegeben werden, die im VisualEditor verwendet werden soll.
Beschreibung
Eine Beschreibung der Funktion des Parameters. Hinweis: Die Beschreibung unterstützt keine Wikitext-Sprachelemente wie Links, Formatierungen, usw., so dass auf diese verzichtet werden muss.
Beispiel
In diesem Feld kann ein Beispielwert angegeben werden, der im VisualEditor bei noch leeren Parametern anfangs angezeigt wird, damit der Vorlagennutzer erkennen kann, wie ein gültiger Eintrag aussehen muss.
Typ
Hier kann der Datentyp des Parameters angegeben werden, d. h. welche Werte der Parameter akzeptiert. Dabei kann nach folgende Checkliste vorgegangen werden, d. h. der Parameter erlaubt:
  1. Wikitext, z. B. Wikilinks, Formatierungen → Inhalt
  2. nur Name einer Medien- bzw. Bilddatei ohne Präfix (z. B. Datei:, Bild:, …) → Datentyp Datei
  3. nur Benutzername → Benutzer
  4. nur Artikel- oder sonstiger Seitenname → Seite
  5. nur Zahl, idealerweise ohne Tausendertrennzeichen und mit Punkt . als Dezimaltrenner → Nummer
  6. nur Datum nach ISO 8601, d. h. üblicherweise JJJJ-MM-TT → Datum
  7. nur Wahrheitswert mit 0 = Nein und 1 = Ja → Boolesch
  8. akzeptiert nicht wohlgeformten Wikitext, z. B. schließendes Tag ohne öffnendes Tag und umgekehrt → Unausgeglichener Wikitext
  9. sonstiger einzeiliger Text → Zeile
  10. sonstiger mehrzeiliger Text → Zeichenfolge
  11. unbekannt → Nicht definiert
Standard
Hier kann angegeben werden, welcher Wert von der Vorlage implizit angenommen wird, wenn der Parameter nicht ausgefüllt wird. Beispielsweise nutzen viele Infobox-Vorlagen den Seitentitel als Überschrift oder verwenden für Bilder eigene Bildgrößen (z. B. 200px) und besitzen einen Extra-Parameter mit dem dieses Verhalten überschrieben werden kann. In diesen Fällen kann dann bei diesen Parametern hier "Seitentitel" oder "200px" angegeben werden.
Autowert
Hier kann angegeben werden mit welchem Wert ein noch leerer Vorlagenparameter vorausgefüllt werden soll, der dann auch im Quelltext abgespeichert wird.
Veraltet
Status-Parameter, gibt an, ob der Parameter veraltet ist. Wenn ein Parameter als veraltet markiert wurde, dann erscheint ein zusätzliches Eingabefeld in dem ein kurzer Hinweis angegeben werden sollte, wie weiter verfahren werden soll, z. B. welcher Parameter statt dessen genutzt werden sollte.
Erforderlich
Status-Parameter, gibt an ob der Parameter unbedingt notwendig ist, damit die Vorlage ordnungsgemäß funktioniert.
Vorgeschlagen
Status-Parameter, Vorgeschlagene Parameter sind solche, deren Nutzung empfohlen wird, d. h. jene die am häufigsten verwendet werden. Diese werden im VisualEditor immer angezeigt und müssen nicht erst ergänzt werden und werden am Ende auch immer im Quelltext ausgegeben, selbst wenn sie nicht ausgefüllt wurden.
Parameterinformationen entfernen
Hiermit kann der Parameter gelöscht werden. Dies sollte nur gemacht werden, wenn der Parameter entweder aus der Vorlage vollständig entfernt wurde oder ein Alternativname eines bestehenden Parameters ist. Parameter die nicht mehr verwendet werden sollten und nur aus Kompatibilitätsgründen noch von der Vorlage unterstützt werden, sollten statt dessen als Veraltet markiert werden.
Fertig
Änderungen übernehmen und zur Parameterübersicht zurückkehren.

Schritt 4: Änderungen übernehmen

Nachdem alle Parameter beschrieben wurden, kann im Hauptformular auf Anwenden geklickt werden, woraufhin das TemplateData-Element erstellt wird. Falls die Vorlage eine Dokumentationsseite besitzt und man wie Eingangs beschrieben das TemplateData-Element auf der Vorlagenseite erzeugt hat, bitte das Element auf die Dokumentationseite kopieren und die Änderungen an der Vorlagenseite verwerfen.

Nach einer inhaltlichen Änderung der Informationen kann man optional einen Null-Edit auf der Vorlagenseite tätigen, damit auch diese im Cache umgehend aktualisiert wird und die Metadaten baldmöglichst allen Werkzeugen zur Verfügung stehen.

Vorlage:Anker Struktur des TemplateData-Objekts

Siehe dazu Hilfe:TemplateData/JSON.

Hilfsmittel und Hilfen

Die Verwendung von TemplateData in dieser Wikipedia wird protokolliert unter:

Generatoren

Alternativ 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

Fü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 {{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

Die TemplateData-Verwendung wurde im Frühsommer 2013 weltweit gestartet.

Zu technischen Details für Programmierer 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

Vorlage:MediaWiki