Zum Inhalt springen

„Hilfe:Parserfunktionen/Programmierung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
K AZ: Der Seiteninhalt wurde durch einen anderen Text ersetzt.
K Änderungen von Darkking3 (Diskussion) auf die letzte Version von PerfektesChaos zurückgesetzt
Markierung: Zurücksetzung
Zeile 1: Zeile 1:
<noinclude>{{Hilfe}}
{{msgnw:@}}
Diese Hilfeseite erläutert spezielle '''[[Hilfe:Parserfunktionen|Parserfunktionen]]''', die in der Vorlagenprogrammierung relevant sind.</noinclude><includeonly>
== Programmierung ==
Diese Funktionen werden für spezielle Aufgaben in der Vorlagenprogrammierung benötigt.</includeonly>


Die deutschsprachigen Lokalisierungen sind ungebräuchlich, weitgehend unbekannt und verhindern erfolgreiche Textsuchen.
{{Str match|{{MSGNW::{{#invoke:WLink|getPlain|[[Netflix]] (USA)}}}}|Kategorie%:Video%-on%-Demand%-Anbieter}}

<includeonly>=</includeonly>== {{Anker|tag}} Tag-Erweiterung einbinden – #tag ==<includeonly>=</includeonly>

{| class="wikitable"
|- class="hintergrundfarbe8"
! Funktion !! [[Hilfe:Parserfunktionen#L10N|Lokalisierung]] !!colspan="2"| Pflichtparameter !!colspan="2"| Parameter
|- class="hintergrundfarbe5"
| <code>#tag</code>
| <code style="font-size:89%; text-decoration:line-through;">#erweiterung</code>
|style="border-right-style:none"| ''Erweiterung''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Inhalt''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Parameter''
|style="border-left-width:2px; border-left-color:#000000;"| ''Parameter''
|-
|colspan="6"| [[Hilfe:Tags#Wiki-Erweiterung|Tag-Erweiterung]] von MediaWiki (kein HTML) mit veränderlichem Inhalt einbinden.
* ''Erweiterung'' ist der Name der Erweiterung.
* ''Inhalt'' ist der in der Regel erforderliche Inhalt des Elements; andernfalls wäre diese Parserfunktionen eher sinnfrei.
* Weitere ''Parameter'' (meist benannt) können dem Element zugewiesen werden.
Im Unterschied zu einer direkten Angabe im Quelltext können im Inneren des Elements zuvor noch Teile des Quelltextes aktuell generiert werden, was bei den meisten Erweiterungen nicht möglich ist.
|-
|colspan="6" class="hintergrundfarbe9"| '''Beispiel:'''
<pre>
{{#tag:nowiki|http://{{{Domain}}}/{{{Pfad}}}}}
</pre>
Wirkung:
# Die beiden Vorlagenparameter <code><nowiki>{{{Domain}}}</nowiki></code> und <code><nowiki>{{{Pfad}}}</nowiki></code> werden durch ihre aktuellen Werte ersetzt.
# Das gesamte Konstrukt wird als <code>&lt;nowiki></code> eingeschlossen.
# Dadurch ist die URL nicht anklickbar, aber inhaltlich vollständig.
Beim üblichen Konstrukt <code style="font-size:85%; white-space:nowrap;"><nowiki>&lt;nowiki>http://{{{Domain}}}/{{{Pfad}}}&lt;/nowiki></nowiki></code> sind hingegen <code style="font-size:85%"><nowiki>{{{Domain}}}</nowiki></code> und <code style="font-size:85%"><nowiki>{{{Pfad}}}</nowiki></code> ebenfalls syntaktisch nicht wirksame Texte.
|}

<includeonly>=</includeonly>== {{Anker|invoke}} Modul-Funktion einbinden – #invoke ==<includeonly>=</includeonly>
Siehe ausführlich [[Hilfe:Lua#invoke|Hilfe:Lua]].
{| class="wikitable"
|- class="hintergrundfarbe8"
! Funktion !! [[Hilfe:Parserfunktionen#L10N|Lokalisierung]] !!colspan="2"| Pflichtparameter !!colspan="2"| Parameter
|- class="hintergrundfarbe5"
| <code>#invoke</code>
| <code style="font-size:89%; text-decoration:line-through;">#aufrufen</code>
|style="border-right-style:none"| ''Modul''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Funktion ''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Parameter''
|style="border-left-width:2px; border-left-color:#000000;"| ''Parameter''
|-
|colspan="6"| Modul-Funktion einbinden.
* ''Modul'' ist der Name des Moduls (ohne <code>Modul:</code> vorangestellt).
* ''Funktion'' ist der Name der Funktion im Modul.
* Weitere ''Parameter'' können dem Funktionsaufruf beigegeben werden.
|}

<includeonly>=</includeonly>== Substitution – subst ==<includeonly>=</includeonly>
Siehe ausführlich [[Hilfe:Substitution#Programmierung|hier]]. Der Quelltext wird nach Abspeicherung ersetzt durch die ausgewerteten Resultate der Ausdrücke.
{| class="wikitable"
|- class="hintergrundfarbe8"
! Funktion !! [[Hilfe:Parserfunktionen#L10N|Lokalisierung]] !! Pflichtparameter !!colspan="2"| Parameter
|- class="hintergrundfarbe5" id="subst"
| <code>subst</code>
| <code style="font-size:89%; text-decoration:line-through;">ers</code>
|style="border-right-style:none"| ''Funktion/Seite''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Parameter''
|style="border-left-width:2px; border-left-color:#000000;"| ''Parameter''
|-
|colspan="5"| Parserfunktion oder Seiteneinbindung substituieren.
* ''Funktion/Seite'' ist der Name des Konstrukts.
* Weitere ''Parameter'' können beigegeben werden.
|- class="hintergrundfarbe5" id="safesubst"
| <code>safesubst</code>
|
| ''Funktion/Seite''
| ''Parameter''
| ''Parameter''
|-
|colspan="5"| Sehr ähnlich <code>subst</code>, mit leicht unterschiedlicher Wirkung in Feinheiten.
|}

<includeonly>=</includeonly>== {{Anker|msgnw}} Seitenquelltext einbinden – msgnw ==<includeonly>=</includeonly>

Diese Funktion ist heutzutage ungebräuchlich; es wird eher eine formatierte Präsentation mittels <code>[[#tag|tag:]]</code> bevorzugt wie:
<pre>
{{#tag:syntaxhighlight | {{Modul:Hello}} | lang=lua}}
</pre>
Allerdings funktioniert das nicht mit Wikitext als eingebundene Seite, der bei seiner Einbindung reagiert und ausgewertet wird. Das ist gerade die Wirkung und das Ziel von Vorlagen.
* Der Name bedeutet:
** <code>[[#msg|msg:]]</code>''nowiki''
** <code>raw:</code> heißt „roh“ und entspricht <code>[[Hilfe:URL-Parameter#RAW|action=raw]]</code>

{| class="wikitable"
|- class="hintergrundfarbe8"
! Funktion !! Pflichtparameter
|- class="hintergrundfarbe5"
| <code>msgnw</code><br /> <code>raw</code>
| ''Seite''
|-
|colspan="4"| Seitenquelltext darstellen.
* ''Seite'' ist der Name der Seite; ohne Namensraum als <code>Vorlage:</code>.
Das Ergebnis ist syntaktisch nicht wirksam.
|-
|colspan="4" class="hintergrundfarbe9"| '''Beispiel:'''<br />
<code><nowiki>{{msgnw:@}}</nowiki></code> ([[Vorlage:@]]) →
{{#tag:pre| {{msgnw:@}} |style=font-size:80%}}
|}

<includeonly>=</includeonly>== {{Anker|msg}} Veraltet: Seite einbinden ==<includeonly>=</includeonly>
Diese Funktion war in den frühen 2000er Jahren der Vorläufer gewesen, bevor das [[Hilfe:Seiten einbinden|Einbinden von Seiten]] reguläre Syntax wurde.
* Die Vorgabe für den Namensraum ist <code>Vorlage:</code> genau wie bei normalen Einbindungen.
* Benannte und unbenannte Parameter werden wie bei Vorlagen in der eingebundenen Seite ersetzt.
* Zunächst war es eher für die Systemnachrichten gedacht gewesen, worauf noch der Name hindeutet. Diese wandelten sich jedoch zur Parserfunktion <code>[[Hilfe:Parserfunktionen/Multilingual#int|int:]]</code> und erwarten $1 $2 $3 usw. als Platzhalter, passen sich aber umgekehrt an die aktuelle Benutzersprache an.
* <code>msg:</code> und <code>int:</code> waren ursprünglich ähnliche Konzepte; <code>int:</code> arbeitet nur im Namensraum <code>MediaWiki:</code> und beachtet sprachabhängige Unterseiten; <code>msg:</code> in beliebigen Namensräumem mit Vorgabe <code>Vorlage:</code> und ist nicht von der Benutzersprache abhängig. Die Platzhalter der zunächst nur unbenannten Parameter wurden anders gestaltet, um später auch beliebig benannte Parameter zu ermöglichen. <code>msg:</code> war als lokal definierbare Nachricht für den Wikitext eine Variante zur Systemnachricht der Software.

{| class="wikitable"
|- class="hintergrundfarbe8"
! Funktion !! Pflichtparameter !!colspan="2"| Parameter
|- class="hintergrundfarbe5"
| <code>msg</code>
|style="border-right-style:none"| ''Seite''
|style="border-left-width:2px; border-left-color:#000000; border-right-style:none;"| ''Parameter''
|style="border-left-width:2px; border-left-color:#000000;"| ''Parameter''
|-
|colspan="4"| Seiteneinbindung.
* ''Seite'' ist der Name der Seite; ohne Namensraum als <code>Vorlage:</code>.
* Weitere ''Parameter'' können beigegeben werden.
|-
|colspan="4" class="hintergrundfarbe9"| '''Beispiel:''' <code><nowiki>{{msg:@|30px}}</nowiki></code> ([[Vorlage:@]]) → {{msg:@|30px}}
|}

{{Hilfe/Weitere Informationen|Liste=
* [[Hilfe:Parserfunktionen/Kontrollstrukturen|Kontrollstrukturen]] – bedingte Auswertungen
* [[Hilfe:Lua/Modul im Wiki#Komponenten|Lua/Modul im Wiki]] – Lua-Funktionen zur nachträglichen Ausführung
** <code>frame:extensionTag()</code> – Tag-Erweiterung einbinden
** <code>frame:expandTemplate()</code> – Seiteneinbindung
|NOTOC=<includeonly>3</includeonly>
}}
<noinclude>
[[Kategorie:Hilfe:Vorlagen]]
[[Kategorie:Hilfe:Wikisyntax]]
</noinclude>

Version vom 14. April 2022, 16:04 Uhr

Diese Hilfeseite erläutert spezielle Parserfunktionen, die in der Vorlagenprogrammierung relevant sind.

Die deutschsprachigen Lokalisierungen sind ungebräuchlich, weitgehend unbekannt und verhindern erfolgreiche Textsuchen.

Tag-Erweiterung einbinden – #tag

Funktion Lokalisierung Pflichtparameter Parameter
#tag #erweiterung Erweiterung Inhalt Parameter Parameter
Tag-Erweiterung von MediaWiki (kein HTML) mit veränderlichem Inhalt einbinden.
  • Erweiterung ist der Name der Erweiterung.
  • Inhalt ist der in der Regel erforderliche Inhalt des Elements; andernfalls wäre diese Parserfunktionen eher sinnfrei.
  • Weitere Parameter (meist benannt) können dem Element zugewiesen werden.

Im Unterschied zu einer direkten Angabe im Quelltext können im Inneren des Elements zuvor noch Teile des Quelltextes aktuell generiert werden, was bei den meisten Erweiterungen nicht möglich ist.

Beispiel:
{{#tag:nowiki|http://{{{Domain}}}/{{{Pfad}}}}}

Wirkung:

  1. Die beiden Vorlagenparameter {{{Domain}}} und {{{Pfad}}} werden durch ihre aktuellen Werte ersetzt.
  2. Das gesamte Konstrukt wird als <nowiki> eingeschlossen.
  3. Dadurch ist die URL nicht anklickbar, aber inhaltlich vollständig.

Beim üblichen Konstrukt <nowiki>http://{{{Domain}}}/{{{Pfad}}}</nowiki> sind hingegen {{{Domain}}} und {{{Pfad}}} ebenfalls syntaktisch nicht wirksame Texte.

Modul-Funktion einbinden – #invoke

Siehe ausführlich Hilfe:Lua.

Funktion Lokalisierung Pflichtparameter Parameter
#invoke #aufrufen Modul Funktion Parameter Parameter
Modul-Funktion einbinden.
  • Modul ist der Name des Moduls (ohne Modul: vorangestellt).
  • Funktion ist der Name der Funktion im Modul.
  • Weitere Parameter können dem Funktionsaufruf beigegeben werden.

Substitution – subst

Siehe ausführlich hier. Der Quelltext wird nach Abspeicherung ersetzt durch die ausgewerteten Resultate der Ausdrücke.

Funktion Lokalisierung Pflichtparameter Parameter
subst ers Funktion/Seite Parameter Parameter
Parserfunktion oder Seiteneinbindung substituieren.
  • Funktion/Seite ist der Name des Konstrukts.
  • Weitere Parameter können beigegeben werden.
safesubst Funktion/Seite Parameter Parameter
Sehr ähnlich subst, mit leicht unterschiedlicher Wirkung in Feinheiten.

Seitenquelltext einbinden – msgnw

Diese Funktion ist heutzutage ungebräuchlich; es wird eher eine formatierte Präsentation mittels tag: bevorzugt wie:

{{#tag:syntaxhighlight | {{Modul:Hello}} | lang=lua}}

Allerdings funktioniert das nicht mit Wikitext als eingebundene Seite, der bei seiner Einbindung reagiert und ausgewertet wird. Das ist gerade die Wirkung und das Ziel von Vorlagen.

  • Der Name bedeutet:
Funktion Pflichtparameter
msgnw
raw
Seite
Seitenquelltext darstellen.
  • Seite ist der Name der Seite; ohne Namensraum als Vorlage:.

Das Ergebnis ist syntaktisch nicht wirksam.

Beispiel:

{{msgnw:@}} (Vorlage:@) →

 <onlyinclude>[[Datei:At sign.svg|{{{1|17px}}}|klasse=skin-invert|verweis=|alt=( @ – at-Zeichen für E-Mail )|(at)]]</onlyinclude>

{{Dokumentation}} 

Veraltet: Seite einbinden

Diese Funktion war in den frühen 2000er Jahren der Vorläufer gewesen, bevor das Einbinden von Seiten reguläre Syntax wurde.

  • Die Vorgabe für den Namensraum ist Vorlage: genau wie bei normalen Einbindungen.
  • Benannte und unbenannte Parameter werden wie bei Vorlagen in der eingebundenen Seite ersetzt.
  • Zunächst war es eher für die Systemnachrichten gedacht gewesen, worauf noch der Name hindeutet. Diese wandelten sich jedoch zur Parserfunktion int: und erwarten $1 $2 $3 usw. als Platzhalter, passen sich aber umgekehrt an die aktuelle Benutzersprache an.
  • msg: und int: waren ursprünglich ähnliche Konzepte; int: arbeitet nur im Namensraum MediaWiki: und beachtet sprachabhängige Unterseiten; msg: in beliebigen Namensräumem mit Vorgabe Vorlage: und ist nicht von der Benutzersprache abhängig. Die Platzhalter der zunächst nur unbenannten Parameter wurden anders gestaltet, um später auch beliebig benannte Parameter zu ermöglichen. msg: war als lokal definierbare Nachricht für den Wikitext eine Variante zur Systemnachricht der Software.
Funktion Pflichtparameter Parameter
msg Seite Parameter Parameter
Seiteneinbindung.
  • Seite ist der Name der Seite; ohne Namensraum als Vorlage:.
  • Weitere Parameter können beigegeben werden.
Beispiel: {{msg:@|30px}} (Vorlage:@) → ( @ – at-Zeichen für E-Mail )