Wikipedia:Lua/Modul/TemplateData/Global

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

Mit dem Plug-In global kann eine vielsprachige Dokumentation für weltweit genutzte Standardvorlagen geteilt werden.

Voraussetzung ist, dass der Parametersatz in den verschiedenen Wiki-Projekten identisch oder mit nur geringen Abweichungen verwendet wird.

Parameter der TemplateData-Vorlage[Quelltext bearbeiten]

Statt des üblichen Parameters JSON= wird verwendet:

  • Global=Bezeichner

Der Bezeichner identifiziert eine Ressource im globalen Repositorium.

Außerdem kann ein weiterer Parameter für notwendige lokale Anpassungen benutzt werden:

  • Local=JSON code

Globales Repositorium[Quelltext bearbeiten]

  • Es wird das Projekt Commons: (Wikimedia Commons) erwartet, und zwar zurzeit nur im Namensraum Data:.
  • Dort wird, sofern dem Bezeichner kein expliziter Pfadname vorangestellt wurde, eine „Oberseite“ Commons:Data:TemplateData angenommen.
  • Sofern keine explizite „Datei-Endung“ angehängt wurde, wird das Format .tab angenommen; dies ist „Tabular Data“.

Tabellenformat[Quelltext bearbeiten]

Die Beschreibung description der Gesamt-Tabelle umreißt die vorgesehene Vorlage und verweist auf deren Eintrag bei Wikidata.

Die sonstigen formalen Einträge (Lizenz usw.) entsprechen den üblichen Gepflogenheiten.

Die Daten-Sektion spezifiziert dann vor allem die einzelnen Vorlagenparameter.

Vom Daten-Schema wird erwartet, dass es die meisten der nachstehenden Felder definiert, sofern benötigt:

name type Anmerkung
name string Obligatorisch
label localized
description localized
type string
required boolean
suggested boolean
default localized
example localized
aliases string
  • aliases wäre eine durch Pipe-Symbole | getrennte Auflistung der Parameternamen.
  • deprecated darf (muss), anders als beim MediaWiki TemplateData, vom Typ localized sein.
    deprecated wäre für eine globale Beschreibung einer stabilen Vorlage ungewöhnlich, könnte aber eines Tages ebenfalls auftreten, falls eine Umstellung vorgenommen werden muss.
  • autovalue und inherits sowie style werden nicht erwartet, sind jedoch möglich.

Anders als bei dem von MediaWiki für TemplateData vorgesehenen JSON-Objekt, bei dem die Komponenten als set (assoziativ, map) in beliebiger Reihenfolge wiedergegeben werden können, wird hier ein Array von Objekten verwendet. Damit ist sichergestellt, dass die Parameter in genau der definierten Reihenfolge gehandhabt werden.

Allgemein gilt:

  • name ist der Name des einzelnen Vorlagenparameters.
  • Alle anderen Bezeichner entsprechen den gängigen TemplateData-Attributen.
  • Sofern Elemente vom Typ localized oder string für diesen Parameter nicht verwendet werden sollen, kann ihnen der Wert null zugewiesen werden.
  • Es müssen immer genauso viele Felder zugewiesen werden wie im Schema definiert wurde, die Aufzählung also ggf. mit null aufgefüllt werden.
  • Eine Zeichenkette darf maximal 400 Zeichen lang werden.

Der Parametername |, der in der Vorlagenprogrammierung nicht möglich wäre, hat eine Sonderbedeutung:

  • Er definiert die Vorlage als Ganzes.
  • Die description ist die Anwenderbeschreibung des Vorlagenzwecks.
  • Das Feld type beschreibt das Quelltextformat format (block/inline).

Lokale Anpassung[Quelltext bearbeiten]

Mit dem Parameter Local= der TemplateData-Vorlage können alle globalen Werte lokal überschrieben werden.

Der Wert ist eine Zeichenkette als JSON im gleichen Format wie der Parameter JSON=, definiert jedoch nur solche Eigenschaften, die sich lokal unterscheiden sollen.

Bei der Parameterliste gibt es folgende Abweichungen:

  • Sie ist ein Array von Objekten, genauso wie auch in der globalen Tabelle.
  • Sie enthält jedoch nur die Vorlagenparameter.
  • Statt als assoziativ benannte Komponente enthält jede Parameterspezifikation einen oder zwei der möglichen string-Werte global und/oder local.
global local Bedeutung
string fehlend Weise die sonstigen Eigenschaften dem global mit gleichem name spezifizierten Parameter zu.
string string Benenne den globalen Parameter entsprechend um; ansonsten wie vor.
string false Entferne diesen globalen Parameter aus der Liste.
fehlend string Füge einen entsprechenden lokalen Parameter an dieser Stelle der Liste hinzu.

Die Reihenfolge im Array definiert die Reihenfolge in der Darstellung.

Für die Kombination bereits vorhandener Definitionen gilt:

  • Ist noch kein Wert gesetzt, wird der lokale Wert verwendet.
  • Ist ein atomarer (string/boolean) globaler Wert vorhanden, wird er durch den lokalen Wert überschrieben.
  • Ist ein localized bereits vorhanden, sollte der lokale Wert ebenfalls vom Typ localized sein. Vorhandene Sprachkomponenten werden dann mit lokalen Werten überschrieben, zusätzliche Sprachkomponenten hinzugefügt.

Implementierung[Quelltext bearbeiten]

en:User:Yurik