是否可以获取模板以从其他模板继承参数?我无法想出一个更好的方式来表达这个问题,所以请允许我举一个例子。
假设您在名为“测试页”的页面上使用了两个模板{{test1}}
和{{test2}}
。
模板:测试1:
{{{par1}}}<br>
{{{par2}}}<br>
{{test2}}
<!--{{test2|par3={{{par3}}}|par4={{{par4}}}}}-->
模板:Test2的:
{{{par3}}}<br>
{{{par4}}}<br>
测试页面
{{test1|par1=aaa|par2=bbb|par3=ccc|par4=ddd}}
所以我想要发生的就是让它显示出来:
aaa
bbb
ccc
ddd
执行此操作的常规方法是包括Template:Test1
中注释掉的行。反正有没有让它自动传递参数?对于这个平凡的事情,明确说par3={{{par3}}}
并不是一个问题,但是当模板变得更复杂时,它可能真的很有用。任何提示都非常感谢。
答案 0 :(得分:2)
您要描述的是参数转发。不,仅凭mediawiki模板无法做到这一点。
正在开发的新Lua引擎(可用于测试扩展:Lua,最终旨在成为核心的一部分)似乎使这成为可能。
答案 1 :(得分:1)
您可以使用
{{test2|{{{arg1}}}={{{par1}}}|{{{arg2}}}={{{par2}}}}}
<{1>}中的,并将其命名为
test1
但是你可以通过等待Lua来节省相当多的理智。 (它已经部署在一些较小的维基百科上,将在3月部署,所以这不是漫长的等待。)
答案 2 :(得分:0)
首先,你的Test1模板在没有参数的情况下调用Test2是没有意义的。您将其作为{{test2}}(无参数)调用。
如果你想要页面全局变量,我建议使用Mediawiki Variables插件。 http://www.mediawiki.org/wiki/Extension:Variables
此外,优良作法是&#34;默认&#34;带垂直条的模板参数,例如{{{par1 |}}}或{{{par2 | None}}}。否则,如果未给出参数,则生成的wikitext将是带括号的参数名称。例如:{{{par1 |}}}如果没有给出该参数,则返回一个空白字符串,但{{{par1}}}实际产生&#34; {{{par1}}}&#34;作为字符串,如果参数不存在,这可能没有用。
回到我使用变量的例子,我已经调整了你的例子(par1是进入test1模板的参数,par2是进入test2模板的参数):
模板test1变为:
{{{par1|}}}<br/>
{{#vardefine: par2|{{{par2|}}} }}
{{test2}}
模板test2变为:
{{#var:par2}}<br/>