| 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.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.