User:Lilyuserin/Substituieren

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Contact

Email Usertalk

This is a Wikimedia Commons user page. If you find this page on any site other than Wikimedia Commons, you are viewing a mirror site. Be aware that the page may be outdated, and that the user this page belongs to may have no personal affiliation with any site other than Wikimedia Commons itself. The original page is located at https://commons.wikimedia.org/wiki/User:Lilyuserin/Substituieren.

العربية  azərbaycanca  беларуская (тарашкевіца)  български  বাংলা  čeština  Deutsch  Deutsch (Sie-Form)  English  Esperanto  español  فارسی  suomi  français  Frysk  galego  עברית  हिन्दी  magyar  հայերեն  Bahasa Indonesia  italiano  日本語  ქართული  한국어  ລາວ  македонски  മലയാളം  Bahasa Melayu  မြန်မာဘာသာ  Nederlands  polski  português  português do Brasil  русский  sicilianu  slovenščina  shqip  svenska  ไทย  Tagalog  Türkçe  українська  Tiếng Việt  简体中文  繁體中文  正體中文(臺灣)  +/−

Wikimedia Commons
Wikimedia Commons


Mehrfaches Substituieren von Vorlagen

Substituieren/Inkludieren

[edit]

Substitution ist das Gegenteil von Transclusion.

subst: ersetzt eine Vorlage durch ihren aktuellen Inhalt, indem vor den Vorlagennamen dieser Text eingefügt wird.

Beispiel: {{subst:FULLPAGENAME}} ergibt User:Lilyuserin/Substituieren

Die Ersetzung erfolgt während des Speicherns, der Text {{subst:FULLPAGENAME}} verschwindet aus der Seite und wird von der MediaWiki-Software durch den Inhalt der Vorlage ersetzt. Durch das Speichern erfolgt eine irreversible Änderung des Seiteninhalts durch den Server. Diese Änderung kann nicht revertiert werden, denn die Seite mit dem eingefügten {{subst:FULLPAGENAME}} wurde nicht in dieser Form gespeichert.

obacht: Das bedeutet nicht zwingend, dass in der Seite jetzt der Text steht, der vor der subst:-Operation auf dem Bildschirm angezeigt wird.

Habe ich eine Vorlage folgenden Inhalts

{{#time:Y|now -1 months}}

so sehe ich auf dem Schirm die Jahreszahl des Vormonats

2024

Naiverweise könnte man annehmen, dass

{{subst:(hier der Name der Vorlage)}}

nach dem Speichern der Seite durch

2024

ersetzt wird. Das ist mitnichten der Fall, es steht

{{#time:Y|now -1 months}}

nach dem Substitutieren in der Seite (im Quelltext).

Erst wenn ich {{{|safesubst:}}} in die Vorlage schreibe, wird genau das substituiert, was am Bildschirm zu sehen ist.

Ich ändere also die Vorlage auf

{{{{{|safesubst:}}}#time:Y|now -1 months}}

Das ganze nennt sich multilevel Substitution

Im Beispiel weiter unten demonstriere ich die Wirkungsweise.

Noch was

[edit]

Das ist jedoch noch nicht die ganze Wahrheit. Wenn du mehrere Transclusions kaskadiert hast, musst du überall dort, wo substituiert werden soll, ein {{{|safesubst:}}} einfügen.

Ein konkretes Beispiel

[edit]

Lege eine Vorlage:jetzt an und schreibe den Text juni hinein.

Dann lege eine Seite beliebigen Namens an, ich habe sie September genannt. Diese Information ist für das Verständnis des Beispiels erforderlich. Nun lege eine Vorlage mit dem gleichen Namen wie die eben erzeugte Seite an, in meinem Fall Vorlage:September.

Nun schreibe folgenden Inhalt in die Vorlage September:

1. {{#replace:{{FULLPAGENAME}}|{{PAGENAME}}|{{jetzt}}}}

2. {{#replace:{{FULLPAGENAME}}|{{PAGENAME}}|{{{{{|safesubst:}}}jetzt}}}}

3. {{#replace:{{FULLPAGENAME}}|{{{{{|safesubst:}}}PAGENAME}}|{{{{{|safesubst:}}}jetzt}}}}

4. {{#replace:{{{{{|safesubst:}}}FULLPAGENAME}}|{{{{{|safesubst:}}}PAGENAME}}|{{{{{|safesubst:}}}jetzt}}}}

5. {{{{{|safesubst:}}}#replace:{{{{{|safesubst:}}}FULLPAGENAME}}|{{{{{|safesubst:}}}PAGENAME}}|{{{{{|safesubst:}}}jetzt}}}}

In die Seite September schreibe folgendes

{{subst:{{subst:PAGENAME}}}}

speichere und editiere die Seite anschließend. Im Quelltext sollte jetzt folgendes stehen:

1. {{#replace:{{FULLPAGENAME}}|{{PAGENAME}}|{{jetzt}}}}

2. {{#replace:{{FULLPAGENAME}}|{{PAGENAME}}|juni}}

3. {{#replace:{{FULLPAGENAME}}|September|juni}}

4. {{#replace:September|September|juni}}

5. juni

Zu sehen ist auf der Seite in allen Fällen der gleiche Text, nämlich der Inhalt der Vorlage:jetzt, in diesem Fall juni, der Wiki-Code, der dahinter steht, ist jedoch in allen Fällen verschieden. Nur im Fall 5. steht tatsächlich der Text juni auch im Code.

Anm.: Wenn du die Links auf dieser Seite verwendest, wirst du abweichende Ergebnisse erhalten, da diese Links auf Seiten im Usernamensraum verweisen. Als kleine Fleißaufgabe kannst du überlegen, wodurch du {{jetzt}} ersetzen musst, damit die Includes und Substitutions funktionieren.

[edit]

Unterseiten
Links auf diese Seite
Alle Lilyuserin-Seiten