User:Lilyuserin/TransclusionSubstitution

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/TransclusionSubstitution.

العربية  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

In meinen Artikeln zu den Themen Substituieren und Input-Box habe ich mich bereits mit diesem Thema befasst. Im Prinzip sind alle Informationen da, die Kunst ist bloß, sie zu erkennen

Bei der Definition von Vorlagen bzw. Preload-Dateien hatte ich das Problem, ein mehrstufiges subst:, zu benötigen. D.h. ein subst:, das erst dann ausgewertet wird, wenn die Vorlage in eine Seite eingefügt wird. Der WikiText-Parser ersetzt beim Speichern alle Vorlagen, die mit subst: versehen sind, durch ihren Inhalt. Woher soll er wissen, dass er erst beim Einbinden in eine Seite ersetzen darf?

Ganz einfach: indem ich es ihm mitteile. Die Substitionslogik entfernt vor dem Einfügen alles aus der Vorlage, was zwischen <noinclude></noinclude> steht. Das mache ich mir zunutze. Durch <noinclude>subst:</noinclude> wird diese Anweisung so maskiert, dass der Parser in der Vorlage keine Substitution durchführt. Nach den Einfügen ist <noinclude></noinclude> weg, übrig bleibt subst:, was beim Speichern ersetzt wird.