Hilfe:Parserfunktionen/Funktionen: Unterschied zwischen den Versionen
(+) |
(→#switch: einheitliche Formatierung zum Rest der Hilfeseite) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 223: | Zeile 223: | ||
Die Funktion <code>#switch</code> liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert <code>#default</code> zu verwenden. | Die Funktion <code>#switch</code> liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert <code>#default</code> zu verwenden. | ||
Beispiel: | ;Beispiel: | ||
<syntaxhighlight> | |||
{{#switch: {{{Zeichen}}} | {{#switch: {{{Zeichen}}} | ||
|A|B|C|D| … X|Y|Z=Großbuchstabe | |A|B|C|D| … X|Y|Z=Großbuchstabe | ||
|a|b|c|d| … x|y|z=Kleinbuchstabe | |a|b|c|d| … x|y|z=Kleinbuchstabe | ||
|=Leerzeichen | |||
|,|;|.|!|?=Satzzeichen | |,|;|.|!|?=Satzzeichen | ||
|{{{Zeichen}}}=KEIN ZEICHEN ANGEGEBEN | |||
|{{{Zeichen}}}= | |||
|#default=Sonderzeichen | |#default=Sonderzeichen | ||
}} | }} | ||
</syntaxhighlight> | |||
=== #tag === | === #tag === |
Aktuelle Version vom 1. November 2024, 20:44 Uhr
Auszug aus den Parserfunktionen von MediaWiki. Für zusätzliche Funktionen ist in InkluPedia die Extension ParserFunctions installiert.
#expr
Die Funktion #expr
berechnet einen mathematischen Ausdruck und gibt den errechneten Wert zurück. Bei Nutzung der Booleschen Algebra ergibt 0 (False) immer falsch
und jeder andere Wert immer wahr
. Ein leerer Ausdruck erzeugt eine leere Ausgabe, ein ungültiger Ausdruck erzeugen eine von mehreren möglichen Fehlermeldungen. Mit der Funktion #iferror
kann die Fehlermeldung verhindert werden.
{{#expr: Ausdruck }}
Art | Operatoren |
---|---|
Gruppieren (Klammern) | ( )
|
Zahlen | 1234,5 e (2,718) pi (3,142)
|
Binärer Operator e Unäre Operatoren + ,-
| |
Unäre Operatoren | not ceil trunc floor abs exp ln sin cos tan acos asin atan
|
Binäre Operatoren | ^
|
* / div mod
| |
+ -
| |
Runden | round
|
Logische Operatoren | = != <> > < >= <=
|
and or
|
- Beispiele
{{#expr: 1 + 2}}
Ergebnis: 3
#if
Die Funktion #if
liefert ein Ergebnis in Abhängigkeit von einer Bedingung. Die Bedingung ist „Wahr“, wenn sie nicht leer ist und „Falsch“, wenn sie leer ist.
{{#if: Bedingung | Wahr | [Falsch] }}
- Beispiele
Wenn der Vorlagenparameter {{{1}}}
nicht leer ist, resultiert Wahr
, sonst Falsch
:
{{#if: {{{1}}} | Wahr | Falsch}}
Wenn der Vorlagenparameter {{{1}}}
nicht leer ist, resultiert Wahr
, sonst „nichts“:
{{#if: {{{1}}} | Wahr}}
Wenn der Vorlagenparameter {{{1}}}
leer ist, resultiert Falsch
, sonst „nichts“:
{{#if: {{{1}}} | | Falsch}}
#iferror
Die Funktion #iferror
überprüft, ob der eingegebene Ausdruck einen Fehler erzeugt. Es wird true
ausgegeben, wenn der Ausdruck ein HTML-Objekt mit class="error"
enthält. Ebenfalls erkannt werden Fehler in Vorlagen wie Rekursionsschleifen. Die Ausgabe-Parameter können bei Bedarf weggelassen werden. Wird der Parameter für Wert wenn korrekt
weggelassen, wird der zu überprüfende Ausdruck ausgegeben, sofern dieser keinen Fehler enthält. Wird auch der Parameter für Wert wenn Fehler
weggelassen, wird bei einem Fehler nichts ausgegeben.
{{#iferror: Teststring | Wert wenn Fehler | Wert wenn korrekt }}
- Beispiele
{{#iferror: {{#expr: 1 + 2 }} | Fehler | OK }}
Ergebnis: OK
{{#iferror: {{#expr: 1 + X }} | Fehler | OK }}
Ergebnis: Fehler
{{#iferror: {{#expr: 1 + 2 }} | Fehler }}
Ergebnis: 3
{{#iferror: {{#expr: 1 + X }} | Fehler }}
Ergebnis: Fehler
{{#iferror: {{#expr: 1 + 2 }} }}
Ergebnis: 3
{{#iferror: {{#expr: 1 + X }} }}
Ergebnis:
#ifeq
Die Funktion #ifeq
vergleicht zwei Strings und bestimmt, ob sie identisch sind. Basierend auf dem Ergebnis wird eine der zwei Zeichenfolgen zurückgegeben. Wenn beide Ausdrücke gültige numerische Werte sind, werden sie zahlenmäßig verglichen. Bei Text wird Groß- und Kleinschreibung beachtet.
{{#ifeq: String 1 | String 2 | Wert wenn gleich | Wert wenn unterschiedlich }}
- Beispiele
{{#ifeq: 01 | 1 | gleich | nicht gleich }}
Ergebnis: gleich
{{#ifeq: {{#expr:10^3}} | 1000 | gleich | nicht gleich }}
Ergebnis: gleich
{{#ifeq: auto | zug | gleich | nicht gleich }}
Ergebnis: nicht gleich
{{#ifeq: auto | Auto | gleich | nicht gleich }}
Ergebnis: nicht gleich
#ifexist
Die Funktion #ifexist
überprüft die Existenz einer Wikiseite in der InkluPedia. Bei Mediendateien wird auch Wikimedia Commons unterstützt, wenn im Namensraum Media:
gesucht wird. Im Namensraum Datei:
/File:
existieren nur lokale Dateibeschreibungsseiten.
{{#ifexist: Seite | Ergebnis wenn existent | Ergebnis wenn nicht existent }}
- Beispiele
Beispiel für Artikel Kiel:
{{#ifexist: Kiel | Die Seite existiert | Die Seite existiert nicht }}
Ergebnis: Die Seite existiert
Beispiel für nicht existierende Seite XYZ123:
{{#ifexist: XYZ123 | Die Seite existiert | Die Seite existiert nicht }}
Ergebnis: Die Seite existiert nicht
Beispiele für lokale Datei File:Wiki_InkluPedia_2015.png:
{{#ifexist: File:Wiki_InkluPedia_2015.png | Datei existiert | Datei existiert nicht }}
Ergebnis: Datei existiert
{{#ifexist: File:Wiki_InkluPedia_2099.png | Datei existiert | Datei existiert nicht }}
Ergebnis: Datei existiert nicht
Beispiele für Commons Datei File:Commons-logo-en.svg:
{{#ifexist: Media:Commons-logo-en.svg | Datei existiert | Datei existiert nicht }}
Ergebnis: Datei existiert
{{#ifexist: File:Commons-logo-en.svg | Datei existiert | Datei existiert nicht }}
Ergebnis: Datei existiert nicht
#invoke
Die Funktion #invoke
bindet ein Modul in der Skriptsprache Lua ein. Der Aufruf der Funktion erfolgt in der Regel innerhalb einer Vorlage. Der Rückgabewert der aufgerufenen Funktion ist eine Zeichenkette, der entsprechend an der Stelle eingebettet wird. Die Ausführungsumgebung wird bei jedem Aufruf von #invoke
zurückgesetzt. Eine direkte Übernahme von Variablen zwischen zwei Aufrufen ist daher nicht möglich. Innerhalb der aufrufenden Vorlage erfolgen die einzelnen Aufrufe von #invoke
sequentiell, mehrere Einbindungen der Vorlage selbst werden dagegen parallel abgearbeitet.
{{#invoke: Lua-Modul | Funktionsname | [Wert1] | [Wert2] | NameX=Wert ... }}
- Parameter
- Lua-Modul: Name des Lua-Moduls
- Funktionsname: Name der Funktion im Modul
- Wert1: (optional) Paremeter 1 für Funktionsaufruf
- Wert2: (optional) Paremeter 2 für Funktionsaufruf
- Beispiele
Beispiele am Modul:Hello
{{#invoke:Hello|hello}}
Ergebnis: Hallo, Welt! Dies ist Lua!
{{#invoke:Hello|hello|InkluPedia}}
Ergebnis: Hallo, InkluPedia! Dies ist Lua!
#language
Die Funktion #language
liefert den Klarnamen für einen Sprachcode nach ISO 639 zurück. Für Ausgabe-Sprachcode wird die Extension CLDR genutzt.
{{#language: Sprachcode | [Ausgabe-Sprachcode] }}
- Parameter
- Sprachcode: aufzulösender Sprachcode nach ISO 639
- Ausgabe-Sprachcode: (optional) gewünschter Sprachcode nach ISO 639 für Ausgabe
- Beispiele
{{#language: ja}}
Ergebnis: 日本語
{{#language: ja | de}}
Ergebnis: Japanisch
#rel2abs
Die Funktion #rel2abs
liefert einen relativen Seitenpfad zurück oder wandelt den angegebenen relativen Seitenpfad um. Der relative Seitenpfad kann mit .
oder ..
oder mit /
oder ./
oder ../
beginnen. Die Funktion verarbeitet reine Zeichenketten, die Seiten müssen in diesem Wiki nicht existieren.
{{#rel2abs: Pfad | [Basis] }}
- Parameter
- Pfad: relativer Seitenname
- Basis: (optional) Basis für Pfad. Wenn nicht angegeben, wird die aktuelle Seite genommen.
- Beispiele
Am Beispiel für Seite Namensraum:Seite1/Teil2/Teil3
{{#rel2abs:}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3
{{#rel2abs:.}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3
{{#rel2abs:..}}
Ergebnis: Namensraum:Seite1/Teil2
{{#rel2abs:/}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3
{{#rel2abs:../..}}
Ergebnis: Namensraum:Seite1
{{#rel2abs:/x}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3/x
{{#rel2abs:/x|TestA/TestB}}
Ergebnis: TestA/TestB/x
#special
Die Funktion #special
...
#switch
Die Funktion #switch
liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert #default
zu verwenden.
- Beispiel
{{#switch: {{{Zeichen}}}
|A|B|C|D| … X|Y|Z=Großbuchstabe
|a|b|c|d| … x|y|z=Kleinbuchstabe
|=Leerzeichen
|,|;|.|!|?=Satzzeichen
|{{{Zeichen}}}=KEIN ZEICHEN ANGEGEBEN
|#default=Sonderzeichen
}}
#tag
Die Funktion #tag
erlaubt es, Tag-Erweiterung von MediaWiki (kein HTML) mit veränderlichem Inhalt einbinden. Die zur Verfügung stehenden Tag-Erweiterungen können auf Spezial:Version nachgelesen werden.
{{#tag: Erweiterung | Inhalt | [Parameter] | [Parameter] }}
- Parameter
- Erweiterung: Name des Tags
- Inhalt: Inhalt des Elements
- Parameter: (optional) Zuweisung an das Element
- Beispiel
{{#tag:nowiki|https://{{{Domain}}}/{{{Pfad}}}}}
Hierbei werden die beiden Vorlagenparameter {{{Domain}}}
und {{{Pfad}}}
durch ihre aktuellen Werte ersetzt und das ganze über das Tag <nowiki>
eingeschlossen.
Beim Konstrukt <nowiki>https://{{{Domain}}}/{{{Pfad}}}</nowiki>
werden hingegen {{{Domain}}}
und {{{Pfad}}}
nicht ersetzt.
#time
Die Funktion #time
formatiert einen beliebigen Zeitpunkt in die Weltzeit.
- Parameter
- Format: PHP-Formatspezifikation
- Zeitpunkt: Datumsformat in ISO 8601 oder englischem Datumsformat. In Weltzeit. Relative Angabe ist möglich. Vorgabe ist „jetzt“. Bei fehlerhafter Angabe des Zeitpunktes wird dieser unverändert wiedergegeben.
- Ausgabesprache: Sprachcode einer Ausgabesprache gemäß ISO 639.
{{#time: Format | [Zeitpunkt] | [Ausgabesprache] }}
- Beispiele
{{#time}}
Ergebnis: {{#time}}
{{#time:j. F Y H:i:s}}
#timel
Die Funktion #timel
formatiert einen beliebigen Zeitpunkt in die lokale Zeit.
{{#timel: Format | [Zeitpunkt] | [Ausgabesprache] }}
- Beispiele
{{#timel}}
Ergebnis: {{#timel}}
#titleparts
Die Funktion #titleparts
extrahiert Segment(e) aus einem mit /
(Slash) gegliederten Seitennamen.
- Parameter
- Seitenname: Name der Seite, in Vorlagen sinnvollerweise mit
{{PAGENAME}}
angeben. - links: Zahl. Gibt die Stelle an, ab welcher ein Teil des Seitentitels zurückgegeben werden soll. Die Schrägstriche im Seitenname zählen und beenden die einzelnen Segmente.
- Anzahl: (optional) Zahl. Ist der Parameter > 0, werden von links aus entsprechend viele n-Teile zurückgegeben. Ist der Parameter < 0, werden von rechts aus n-Teile abgetrennt.
- Beispiele
{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|1}}
Ergebnis: Namensraum:Seite1
{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|-1}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3
{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|0|2}}
Ergebnis: Teil2/Teil3/Teil4
{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|1|2}}
Ergebnis: Teil2