| 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.*%aoder 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 | |
urlurl+ |
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.