Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
TemplatePar
– Modul mit Hilfsfunktionen für die Vorlagenprogrammierung; namentlich die Analyse der Parameter der umgebenden Vorlageneinbindung.
Insbesondere sollen den Anwendern für Standardfälle der Parameteranalyse auf einfache Weise Standard-Fehlermeldungen dargestellt werden.
Alle Funktionen wirken hinsichtlich der analysierten Parameter auf die umgebende Vorlageneinbindung; die Parameter von #invoke
spezifizieren die Regeln für die Analyse.
class=error
zurückgegeben.=
getrennt.=
getrennt.0
.#invoke
)0
.1=
Parametername=
Spezifikation*
anzugeben oder einer geeigneten Spezifikation zu unterwerfen.class=error
) zurückgegeben, wenn etwas nicht stimmt; sonst nichts.class=error
zurückgegeben.Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
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 | »2023-03-20« |
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:Q15393417)
|
»2023-03-20« |
item
|
ID des Wikidata-Items
|
»Q15393417« |
~
|
Ü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.
|
Alle Funktionen, die auf einen Fehlerfall führen können (check, valid), unterstützen auch die nachstehenden Parameter:
errNS
lässt sich die Kategorisierung auf bestimmte Namensräume beschränken.@@@
enthält und template
gesetzt ist, wird dies durch template
ersetzt.cat
beschränkt bleibt.errNS=
) bedeutet keine Namensräume!class="error"
formatiert:
format
nicht angegeben.|format=*
cat=
gesetzt sein):
|format=
|format=0
|format=-
|format=Fester Text
|format=<span …>Fester Text</span>
@@@
als Platzhalter für die unformatierte Standardmeldung.|format=<span …>Standardmeldung: @@@</span>
|format=0
usw. immer Standardmeldung anzeigen:
|preview=1
|preview=Fester Text
|preview=<span …>Fester Text</span>
|preview=<span …>Standardmeldung: @@@</span>
Anwendungsfall für check am Beispiel der {{Information}}:
{{#invoke:TemplatePar
|check
|all= Beschreibung= Quelle= Urheber=
|opt= Datum= Genehmigung= Andere Versionen= Anmerkungen=
|template=[[Vorlage:Information]]}}
=
enthalten kann, werden diese zur Abtrennung der Namen benutzt. Leerzeichen vor und nach dem Namen werden ignoriert. Zusätzliche Gleichheitszeichen sind unproblematisch.all=
noch opt=
aufgeführt sind, lösen eine Fehlermeldung aus.all=
als auch opt=
angegeben.all=
noch opt=
aufgeführt ist.all=
aufgeführter Parameter.all=
aufgeführter Parameter nur mit Gleichheitszeichen, aber ohne sichtbaren Wert angegeben; oder ein unbenannter Parameter ist leer.Für die optionale Bedingung 2 in valid gibt es zwei Grundtypen:
|
sowie {{
und }}
sind in der Vorlagenprogrammierung nicht möglich. Dafür sind zu ersetzen:
|
→ %!
{{
→ %((
}}
→ %))
Zur Spalte Implementierung siehe Hilfe:Lua/Zeichenketten #Pattern
Schlüssel | Bedeutung | Implementierung |
---|---|---|
ASCII
|
ASCII-Zeichen (Codes 32–126), nur innerhalb einer Zeile, oder leer | ^[ -~]*$
|
ASCII+
|
wie vor; nicht leer | ^[ -~]+$
|
ASCII+1
|
in einem Wort; sonst wie vor und nicht leer | ^[!-~]+$
|
n
|
Nur ASCII-Ziffern 0–9, sowie vorangestelltes Vorzeichen ASCII-Minus, oder leer | ^[%-]?[0-9]*$ einzelnes Minus ausschließen |
n>0
|
Nur ASCII-Ziffern 0–9, ohne Vorzeichen, nicht leer und mindestens eine Ziffer nicht Null | ^[0-9]*[1-9][0-9]*$
|
N+
|
Wie n , aber führende Null nicht erlaubt und nicht leer
|
^[%-]?[1-9][0-9]*$
|
N>0
|
Wie n>0 , aber führende Null nicht erlaubt
|
^[1-9][0-9]*$
|
x
|
Hexadezimalzahl; ASCII-Ziffern 0–9 Buchstaben a–f A–F, oder leer | ^[0-9A-Fa-f]*$
|
x+
|
wie vor; nicht leer | ^[0-9A-Fa-f]+$
|
X
|
Hexadezimalzahl; ASCII-Ziffern 0–9 Buchstaben A–F, oder leer | ^[0-9A-F]*$
|
X+
|
wie vor; nicht leer | ^[0-9A-F]+$
|
0,0
|
Beliebige Zahl; auch kleiner Null; kann Komma enthalten; oder leer | ^[%-]?[0-9]*,?[0-9]*$ nicht nur Minus oder Komma |
0,0+
|
Zahl mit Komma und Nachkommastelle; auch kleiner Null | ^[%-]?[0-9]+,[0-9]+$
|
0,0+?
|
Beliebige Zahl; auch kleiner Null; kann Komma und Nachkommastelle enthalten; nicht leer | ^[%-]?[0-9]+,?[0-9]*$
|
0.0
|
Beliebige Zahl; auch kleiner Null; kann Dezimalpunkt enthalten; oder leer | ^[%-]?[0-9]*[%.]?[0-9]*$ nicht nur Minus oder Punkt |
0.0+
|
Zahl mit Dezimalpunkt und Dezimalstelle; auch kleiner Null | ^[%-]?[0-9]+%.[0-9]+$
|
0.0+?
|
Beliebige Zahl; auch kleiner Null; kann Dezimalpunkt und Dezimalstelle enthalten; nicht leer | ^[%-]?[0-9]+[%.]?[0-9]*$
|
.0+
|
Beliebige Zahl; auch kleiner Null; kann Dezimalpunkt und Dezimalstelle enthalten, aber nicht notwendigerweise mit Ziffer davor; nicht leer | ^[%-]?[0-9]*[%.]?[0-9]+$
|
aa
|
Mindestens zwei Buchstaben (nicht nur nebeneinander: N.N.) oder ein CJK | %a.*%a oder CJK |
ID
|
Identifizierer unter Einschränkungen, wie sie für viele Sprachen üblich sind: ASCII, beginnend mit Buchstaben; weiter Ziffern und Unterstreichungsstrich; oder leer. Die nachfolgenden ASCII-Wörter sind ebenfalls unter dem Aspekt solcher Bezeichner zu sehen; etwa als Komponente einer URL. |
^[A-Za-z]?[A-Za-z_0-9]*$
|
ID+
|
wie vor; aber nicht leer. | ^[A-Za-z][A-Za-z_0-9]*$
|
ABC
|
Wort in ASCII-Großbuchstaben; oder leer. | ^[A-Z]*$
|
ABC+
|
wie vor; aber nicht leer. | ^[A-Z]+$
|
Abc
|
Wort in ASCII-Buchstaben mit nur erstem Buchstaben groß; oder leer. | ^[A-Z]*[a-z]*$
|
Abc+
|
wie vor; aber nicht leer. | ^[A-Z][a-z]+$
|
abc
|
Wort in ASCII-Kleinbuchstaben; oder leer. | ^[a-z]*$
|
abc+
|
wie vor; aber nicht leer. | ^[a-z]+$
|
aBc+
|
Wort in ASCII-Buchstaben mit lower camel casing; nicht leer. | ^[a-z]+[A-Z][A-Za-z]*$
|
base64
|
Base64; oder leer. | ^[A-Za-z0-9%+/]*$
|
base64+
|
wie vor; aber nicht leer. | ^[A-Za-z0-9%+/]+$
|
pagename
|
Zulässiger Seitenname; nicht leer. | nicht #<>[]|{} oder 12710 oder 1–3110
|
|
Zulässiger Titel oder Name einer Mediendatei bei
Als | |
|
Bedingung: Arithmetischer Vergleich oder (auch) numerische Ungleichheit | |
url url+
|
leer oder genau eine Internet URL (Pflicht) |
|
ref
|
<ref> enthalten – Citation needed
|
|
|
leer oder Sprachcode leer oder Leerzeichen-getrennte Liste von Sprachcodes |
|
*
|
leer oder beliebig | |
+ nichts |
nicht leer | %S
|
In Planung | ||
date
|
Irgendein bekanntes Format für Datum und auch Zeit. | |
Hier eher nicht vorgesehen | ||
|
Eine Testseite illustriert praktische Beispiele.
Eine Einbindung erfolgt jeweils im Format
{{#invoke: TemplatePar |
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.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.