Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
TemplUtl
– Bibliotheksmodul mit Funktionen für das Arbeiten mit Vorlageneinbindungen.
Funktionen für Vorlagen
Bearbeiten- facets
- Zerlegung in suchbare „Wörter“ (Gruppen nur aus Buchstaben und Ziffern aller Schriftsysteme; getrennt durch Sonderzeichen)
- Parameter:
- 1
- zu analysierender Text
- decode
%
– Text zunächst URL-dekodieren
- faculty
- Boolesche Auswahl (ja/nein) für Parameterwerte
- Parameter:
- 1
- zu analysierender Parameterwert
- Leerzeichen werden ignoriert, Groß- und Kleinschreibung egal; zwei Interpretationen:
- leer,
0
,false
, n, no, off, nein,0000
,-
1
,true
, y, yes, on, ja, j;0101
(boolesche Schalter dürfen sich wiederholen)
- leer,
- 2
- Verhalten bei nicht erkanntem Wert 1
- (optional)
1
– „ja“ (Vorgabe)0
– „nein“-
– „nein“ (Wert testen)
- Ergebnis:
- leer für „nein“
- nicht leer (
1
) für „ja“ -
falls2=-
und Wert nicht erkannt
- Testseite mit Beispielergebnissen
- Die Werte
nein
,ja
,j
gelten in nur deutschsprachigen Wikis, die anderen in jedem Wiki. Zur Spezifikation siehe hier. - failure
- Formatiere Fehlermeldung; in der Bearbeitungsvorschau des Quelltextes im Seitenkopf wiederholen und verlinken
- Parameter:
- 1
- Fehlermeldung
- 2
- Sichtbarkeit der Fehlermeldung in der Darstellung
- (optional)
0
– „unsichtbar“ (Vorgabe)1
– „sichtbar“
- Ergebnis: HTML-Element
- fake
- Simulation einer Vorlageneinbindung durch blinde Einbindung, dadurch verschwindet diese Vorlage von Spezial:Unbenutzte Vorlagen (insbesondere bei substituierenden Vorlagen sowie für alle Hilfsseiten im Vorlagen-Namensraum, wie Test-, Wartungs-, Editnotice-, Preload- und sonstige Unterseiten, die regulär niemals eingebunden werden).
- Parameter:
- 1
- Titel/Name der Vorlage (nicht aktuelle Seite – schlägt in Kategorie:Wikipedia:Seite mit Vorlagenschleife auf)
- fakes
- Wie fake für eine ganze Serie
- Parameter:
- 1 2 3 4 5 6 7 8 9 …
- Titel/Name/Namensteil je einer Vorlage, beliebig viele
- prefix
- (optional) Wird dem Namen jeder Vorlage vorangestellt
- list
- (optional)
1
– Verlinkung jedes Eintrags aktivieren; als Aufzählung
- firstbreak
- Wenn das erste Zeichen des Textes (nach Trimmung) ein Aufzählungszeichen
*#;:
oder Tabellenbeginn/-ende usw. ist, das erst auf einer neuen Zeile wirksam wird, dann stelle einen Zeilenumbruch voran. - Parameter:
- 1
- Wikitext
- Ergebnis: getrimter Text, ggf. mit vorangestelltem Zeilenumbruch
- from
- Stelle den Namen der unmittelbar umgebenden Seite (Vorlage) anklickbar umgeben von nicht wirksamen doppelten geschweiften Klammern dar.
- isRedirect
- Erfolgt diese Einbindung auf einer Seite, die eine Weiterleitung ist?
- nowiki1
- Wenn das erste Zeichen des Textes (nach Trimmung) ein Aufzählungszeichen
*#;:
ist, das als solches wirksam würde, dann stelle es als HTML-Entity dar. - Parameter:
- 1
- Ergebnis: getrimter Text, ggf. mit HTML-Entity
- Wikitext
- failsafe
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 | »2022-05-16« |
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:Q52364930)
|
»2022-05-16« |
item
|
ID des Wikidata-Items
|
»Q52364930« |
~
|
Ü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.
|
Funktionen für Lua-Module
BearbeitenDie Bibliothek muss über require()
in das nutzende Modul eingebunden werden:[1]
local lucky, TemplUtl = pcall( require, "Module:TemplUtl" )
if type( TemplUtl ) == "table" then
TemplUtl = TemplUtl()
else
-- Fehlerfall; TemplUtl enthält Fehlermeldung
return "<span class=\"error\">" .. TemplUtl .. "</span>"
end
Danach stehen zur Verfügung:
- TemplUtl.facets( ask, adjust )
-
- ask – string; zu analysierender Text
- adjust – (optional) string;
%
– Text zunächst URL-dekodieren
- TemplUtl.faculty( analyze, another, frame )
-
- analyze – string, number, boolean, nil; was zu analysieren ist
- another – (optional) string, number, boolean; Rückfallwert bei nicht erkanntem analyze
- frame – (optional) Objekt; wenn zur Hand
- Ergibt
true
, wenn „ja“, sonstfalse
; oder"-"
für die Analyse des Wertes. - Zahlen ungleich
0
sind „ja“. - TemplUtl.failure( alert, always )
-
- analyze – string; Fehlermeldung
- always – (optional) boolean; Sichtbarkeit
- TemplUtl.fake( access )
-
- access – (optional) string, boolean, nil; Name der Vorlage
- TemplUtl.fakes( array, frame, ahead, answer )
-
- array – table; mit ungetrimmten Namen der Vorlage auf numerischen Elementen
- frame – (optional) Objekt; wenn zur Hand
- ahead – (optional) string, nil; voranzustellender Namensbeginn
- answer – (optional) true, nil; Aufzählung von Verlinkungen zurückgeben
- Ergibt string, wenn answer
- TemplUtl.feasible( address )
- Beschreibt dies den Beginn einer Ressourcen-URL?
- address – string; was zu durchsuchen ist
- Ergibt
true
, wenn URL-Beginn (auch protokoll-relativ). - TemplUtl.feed( area, ahead, at, after )
- Finde das nächste freie
|
oder}}
.- area – string; was zu durchsuchen ist
- Sollte nur die Vorlageneinbindung enthalten, um Treffer außerhalb der Einbindung zu vermeiden.
- ahead – string; öffnendes Element, oder
false
- Eines von
[ [[ {{ {{{
oderfalse
- Eines von
- at – number; byte-Position in area, wo begonnen werden soll
- after –
true
, wenn nur nach}}
gesucht werden soll - Hinweis: Zu einem mit .find() gefundenen Beginn der Einbindung lässt sich damit das zugehörige Ende ermitteln, oder wenn für ahead
{{
angegeben wird.
- area – string; was zu durchsuchen ist
- Ergibt zwei Werte:
- number; byte-Position in area
- vor
|
oder}}
– könnte auch das Ende von area sein. - Punkt zur Fortsetzung der Suche; ahead wurde geschlossen.
- vor
true
, wenn ab number eine Suche fortgesetzt werden soll.
- number; byte-Position in area
- TemplUtl.feeder( area, at )
- Ermittle alle Parameter der Einbindung.
- area – string; was zu durchsuchen ist
- at – (optional) number; byte-Position in area, wo begonnen werden soll
- Ergibt zwei Werte:
- table; Wertzuweisungen
- [0] – Name der Vorlage, Seite, Parserfunktion
- [1] … – unbenannte Parameter
- ["name"] … – benannte Parameter
- string; Fehlermeldung(en), sonst
nil
- table; Wertzuweisungen
- HTML-Kommentare werden nicht geliefert.
- TemplUtl.fetch( area, ask )
- Ermittle den Wert eines benannten Parameters.
- area – string; was zu durchsuchen ist
- Sollte nur die Vorlageneinbindung enthalten, um Treffer außerhalb der Einbindung zu vermeiden.
- ask – string; Name des Parameters
- area – string; was zu durchsuchen ist
- Ergibt den getrimmten Parameterwert, oder
nil
. - TemplUtl.find( area, access, at, alter )
- Finde das nächste Vorkommen einer Vorlageneinbindung.
- area – string; was zu durchsuchen ist
- access – string; getrimmter Seitentitel (Vorlage)
- at – (optional) number; ustring-Position in area, wenn nicht
1
- alter – (optional) string; Namensraum-pattern in Kleinschreibung (ohne Doppelpunkt)
""
für Artikelfalse
für Vorlagen
- Ergibt ustring-Position der
{{
in area, oderfalse
. - TemplUtl.firstbreak( adjust )
-
- adjust – string; getrimmter Wikitext
- TemplUtl.flat( area )
- Eliminiere Syntaxelemente, die nur Syntax unwirksam machen (HTML-Kommentar,
nowiki pre syntaxhighlight
).- area – string; was zu durchsuchen ist
- Ergibt area ohne nur maskierende Textsyntax.
- TemplUtl.nowiki1( adjust )
-
- adjust – string; getrimmter Wikitext
- TemplUtl.failsafe(atleast)
- atleast
optional
nil oder Mindestversion oder"wikidata"
oder~
für Synchronisation - Rückgabewert: Boolesch oder Zeichenkette
Verwendung
BearbeitenAllgemeine Bibliothek; nicht eingegrenzt.
Internationalisierung
Bearbeiten- commons:Data:I18n/01.tab – Definition von „Ja“ und „Nein“ in der Projekt- bzw. Seitensprache.
- Das Untermodul Modul:TemplUtl/local kann sprach- und projektabhängige Varianten definieren, wird jedoch zurzeit nicht benötigt.
Abhängigkeiten
BearbeitenKeine.
Anmerkungen
Bearbeiten- ↑ Statt
TemplUtl = TemplUtl()
wurde früher auch angegeben:
TemplUtl = TemplUtl.TemplUtl()
Dies sollte nach und nach vereinfacht werden.