如何在 MediaWiki 模板中使用 wikitext 创建临时局部变量?
示例:
MyVar = "Banana"
{{#if: {{{2}}}
|<small>MyVar</small>
|'''MyVar'''
}}
这个扩展应该可以解决问题,但想知道是否有本地方法。
正如蛛网膜所说:你天生无法做到这一点。您可以创建自己的扩展(这在大多数情况下不可行),或者使用帮助程序模板。通过这种方式,您可以将数据作为参数传递,并且在内部模板中,您可以多次重复使用该数据。我想这就是你的意图。
顺便说一句:{{#if: {{{2}}}|...|...}} 不起作用。你需要写成{{{2|}}},否则如果没有传递第二个参数,你会得到字面上的
{{{2}}}
。
假设您有一个模板 Foo。然后你可以创建一个辅助模板 Foo/X,并在 Foo 中使用它,如下所示:
{{Foo/X | Banana | small={{{2|}}} }}
我在大括号之间放置了一些空格,实际上,它们可能会造成破坏。
在 Foo/X 中,你写:
{{#if:{{{small|}}}|<small>{{{1|}}}</small>|'''{{{1|}}}'''}}
是的,很麻烦。但如果没有变量,就必须求助于参数。您应该避免使用变量扩展,因为它已被弃用。 Mediawiki 计划创建一个并行解析器,在这样的环境中,变量就不再起作用了。