User:Lilyuserin/TransclusionSubstitution
Contact |
---|
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.
|
![]() |
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.