Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

Text – Modul mit Funktionen für Textpassagen, Wikitext und ggf. HTML.

Funktionen für Vorlagen

Alle Funktionen haben einen unbenannten Parameter mit dem Text.

Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn der Parameterwert die Erwartung nicht erfüllt. Wenn ein Ergebnis vorhanden oder die Abfragebedingung wahr ist, resultiert mindestens ein Zeichen.

char
Zeichenkette aus Zeichencodes generieren.
1
Leerzeichen-getrennte Liste von Zahlenwerten
*
Anzahl der Wiederholungen der Liste 1; Vorgabe: 1
errors
0 – Fehlermeldungen unterdrücken
concatParams
Beliebig viele Elemente zu einer Liste kombinieren ähnlich table.concat() in Lua.
1
Erstes Element; fehlende oder leere Elemente werden ignoriert
2 3 4 5 6 …
Zweites usw. Element
apply
Trennzeichen bei der internen Verkettung; standardmäßig |
adapt
optionale Formatierung, die auf jedes Element angewendet wird; muss %s enthalten.
containsCJK
Enthält die Zeichenkette ein CJK-Zeichen?
  • nichts – wenn nicht erkannt
getPlain
Entferne Wikisyntax (ausgenommen Vorlagen): Kommentare, Tags, Kursiv-/Fettschrift, nbsp
isLatinRange
Besteht die Zeichenkette nur aus Zeichen, die in lateinisch verschrifteten Texten zu erwarten sind?
  • nichts – wenn ein anderes Zeichen gefunden wurde
isQuote
Ist dieses einzelne Zeichen als Anführungszeichen einsetzbar, einschließlich eines ' aus der Wikisyntax?
  • nichts – wenn kein Anführungszeichen oder mehrere Zeichen
listToText
Formatiere Listenelemente analog zu mw.text.listToText()
Zwischen den Elementen wird ein Komma mit Leerzeichen gesetzt; zwischen dem vorletzten und letzten das Wort „und“.
Als Listenelemente werden die Werte unbenannter Parameter verwendet.
Optionale Parameter von #invoke:
  • format – Jedes Listenelement soll zunächst mit diesem Pattern formatiert werden, das mindestens ein %s enthalten muss.
  • template=1 – Die Listenelemente werden der umgebenden Vorlageneinbindung entnommen.
Das Ergebnis ist die Zeichenkette.
quote
Schließe die Zeichenkette in sprachabhängige Anführungszeichen ein.
1
Eingabetext (wird getrimmt) – auch leerer Text führt zum Ergebnis
2
(optional) einzelner Sprachcode gemäß ISO 639
Liste aktuell unterstützter Sprachen
3
(optional) 2 für Anführungszeichen zweiter Ebene
quoteUnquoted
Schließe die Zeichenkette in sprachabhängige Anführungszeichen ein, falls nicht leer oder schon zu Beginn oder am Ende ein Anführungszeichen steht.
1
Eingabetext (wird getrimmt)
2
(optional) einzelner Sprachcode gemäß ISO 639
Liste aktuell unterstützter Sprachen
3
(optional) 2 für Anführungszeichen zweiter Ebene
removeDiacritics
Entfernt alle diakritischen Zeichen aus der Eingabe.
1
Eingabetext
removeWhitespace
Entfernt alle Leerraum-Zeichen aus der Eingabe; auch als Entities.
1
Eingabetext
sentenceTerminated
Ist die Zeichenkette mit einem Satzendezeichen beendet, auch CJK, auch wenn noch Anführungszeichen oder schließende eckige Klammern folgen?
  • nichts – wenn nicht erkannt
tokenWords
Spaltet den Text in durch einfache Leerzeichen getrennte Wörter aus Ziffern und Buchstaben; ohne Zeilenumbrüche, Satzzeichen, Sonderzeichen.
1
Eingabetext
ucfirstAll
Den ersten Buchstaben jedes erkennbaren Wortes groß schreiben.
Die Parserfunktion {{ucfirst:}} verändert hingegen nur das erste nichtleere Zeichen des Parameters.
Benannte HTML-Entities, deren Notation wegen Unsichtbarkeit oder Syntaxkonflikt üblich ist, werden nicht beeinträchtigt.
unstrip
Enferne alle durch Extensionen eingefügten Verweise auf extern zwischengespeicherte Textsegmente.
uprightNonlatin
Gib eine Zeichenkette zurück, bei der nichtlateinische Zeichen nicht kursiv dargestellt werden, abgesehen von einem einzelnen griechischen Buchstaben.
zip
Fügt mehrere Listen/Tupel in Textform elementweise im Reißverschlussprinzip zusammen (convolution), d.h. sei liste1 = "a b c" und liste2 = "1 2 3" dann ist zip(liste1, liste2, sep = " ", isep = "-", osep = "/") = "a-1/b-2/c-3" (Hinweis: Bei Aufruf der Funktion aus dem Wikitext mittels #invoke entfallen die Anführungsstriche.)
  • 1, 2, 3, … – Listen/Tupel
  • sep – Trennzeichen (Lua-Regex) mit dem die Einzelwerte der Liste voneinander getrennt sind. Wenn leer, wird die Liste in ihre Einzelzeichen zerlegt.
  • sep1, sep2, sep3, … – falls einzelne Listen ein anderes Trennzeichen verwenden
  • isep – Ausgabetrennzeichen mit dem die Einträge die in ihren Listen an gleichen Positionen stehen verbunden werden
  • osep – Ausgabetrennzeichen mit dem ein Positionswechsel markiert wird
failsafe
Versionsbezeichnung (lokal): 2024-06-05

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):

Parameter
Wert Ergebnis aktuell
nichts
false
lokale Version »2024-06-05«
Mindest­version Mindestversionsbezeichnung
Datum im ISO-Format

Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.

  • leer, falls Mindestversion nicht erfüllt
  • 2001-01-01 → »2024-06-05«
  • 2099-01-01 → »«
wikidata Versionsbezeichnung der globalen Mutter (d:Q29387871)
  • Versionsbezeichnung auf Wikidata
  • lokal, falls dort keine gefunden
»2024-06-05«
item ID des Wikidata-Items
  • leer, falls nicht definiert
»Q29387871«
~ Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
  • leer, falls aktuell
  • Versionsbezeichnung auf Wikidata, falls ungleich
»«
@ Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
  • leer, falls mit dem richtigen Item verknüpft
  • Item-ID, falls nicht
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette.

Beispiele (Testseite)

Eine Testseite illustriert praktische Beispiele.

Allgemeine Hinweise zur Einbindung von Modulen

Eine Einbindung erfolgt jeweils im Format

{{#invoke: Text | 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.

  1. Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
  2. Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
  3. 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.