Wikipedia:Lua/Modul/JSONutil
Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
JSONutil
– Modul zur Vorbereitung und Analyse von JSON-Daten, die als Parameterwerte an Lua-Module übergeben werden.
Zeilenumbrüche und Tabulatoren in Zeichenketten werden toleriert.
Statt eines pauschalen „Invalid“ wird versucht, einige typische Fehler zu detektieren und mit auffindbarem Kontext zu melden.
Zusätzlich ist es möglich, JSON-Code aus Vorlagensyntax zu generieren.
Funktionen für Vorlagen
- failsafe
- Versionsmanagement
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
Wert | Ergebnis | aktuell |
---|---|---|
nichtsfalse
|
lokale Version | »2020-11-08« |
Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata
|
Versionsbezeichnung der globalen Mutter (d:Q63869449)
|
»2020-11-08« |
item
|
ID des Wikidata-Items
|
»Q63869449« |
~
|
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»« |
@
|
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
|
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false ; andernfalls die angegebene Zeichenkette.
|
Encode
Diese Funktionen generieren JSON-Quelltext aus Vorlagensyntax.
- encodeArray
- Generiere ein Array mit nicht-leeren Elementen.
- Parameter der Vorlageneinbindung (alle optional):
- 1
- Erstes Element des Array
- 2
- Zweites Element des Array
- 3 4 5 6 7 8 9 …
- Beliebig viele weitere Elemente des Array
- Parameter des #invoke:
- type
- Datentyp aller Elemente; boolean / number / string (optional)
- encodeComponent
- Generiere eine Komponente in einem Objekt.
- Parameter des #invoke:
- sign
- Name der Komponente
- value
- Wert der Komponente
- type
- Datentyp der Komponente; boolean / number / string (optional)
- indent
- Einrückungsstufe der JSON-Quelle (optional number)
- encodeHash
- Generiere ein Objekt.
- Parameter der Vorlageneinbindung (alle optional):
- Name1
- Wert1
- Name2
- Wert2
- Name3 Name4 Name5 Name6 … (beliebig viele weitere Komponenten)
- Wert3 Wert4 Wert5 Wert6 …
- encodeI18N
- Generiere einen mehrsprachigen Text.
- en
- Text auf Englisch (empfohlen)
- de
- Text auf Deutsch (optional)
- fr es pt zh … (beliebig viele weitere Sprachen)
- Text
- indent
- Einrückungsstufe der JSON-Quelle (optional number)
- encodeObject
- Füge eine Abfolge von Komponenten in Objekt-Klammern ein.
- 1
- JSON-Quelltext mit Komponenten, darf auf ein Komma enden
- indent
- Einrückungsstufe der JSON-Quelle (optional number)
- encodePolyglott
- Generiere einen lokalen oder mehrsprachigen Text.
- 1
- JSON-Quellcode mit mehrsprachigem Text, oder einfache Zeichenkette
- indent
- Einrückungsstufe der JSON-Quelle (optional number)
Verwendung
Allgemeine Bibliothek.
Internationalisierung
- commons:Data:I18n/Module:JSONutil.tab – Textbausteine
- Fehlermeldungen werden in Benutzer-/Projektsprache gezeigt.
Siehe auch
- jsonDebug@PerfektesChaos – Benutzerskript zur detaillierteren Analyse fataler Fehler
Allgemeine Hinweise zur Einbindung von Modulen
Eine Einbindung erfolgt jeweils im Format
{{#invoke: JSONutil |
Funktionsname | Wert1 | Wert2 | NameX=Wert … }}
Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.
Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=
Wert gearbeitet werden.
Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.
Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.
- Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
- Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
- Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.