具有可变数量参数的模板

时间:2015-08-22 21:04:47

标签: mediawiki mediawiki-extensions mediawiki-templates

我正在为小型游戏设置维基,而且我正面临有关模板的问题。

wiki的组织:

这个游戏的区域由几个层次组成。我的wiki每个区域都有一个页面,这个页面包含每个级别的缩略图,链接到该级别的页面。

现在,我的Level模板有这样的东西:

|-
| [[Image:{{{region_images}}} {{{level}}}.png|200px|link={{{region}}}/{{{level}}}]]

以及它在区域页面中的使用方式:

{| style="text-align: center;"
{{Level|region=My Region Name|region_images=My Region Filename|level=0}}
{{Level|region=My Region Name|region_images=My Region Filename|level=1}}
{{Level|region=My Region Name|region_images=My Region Filename|level=2}}
{{Level|region=My Region Name|region_images=My Region Filename|level=3}}
{{Level|region=My Region Name|region_images=My Region Filename|level=4}}
{{Level|region=My Region Name|region_images=My Region Filename|level=5}}
{{Level|region=My Region Name|region_images=My Region Filename|level=6}}
|}
如果这个wiki支持文件名中的非UTF-8字符,那么

region和region_images会是一回事,但不幸的是它没有。

主要问题:

所以,正如你所看到的,region和region_images在任何地方都会重复,所以我想我可以制作一个模板来处理它。

我在考虑一些我可以这样使用的东西:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1
|2
|3
|4
|5
|6}}

会生成Level模板,就像我之前的例子一样。但我对模板很陌生,我不确定它是否可行。在我的Region模板中,我似乎需要一个可变长度参数列表,但我找不到类似的东西。如果它不存在,我应该怎么做?

附属问题:

实际上,我简化了一下情况,但在这个游戏关卡中可以链接到其他级别,所以我想在该地区的页面中指出它。 Level模板具有可选参数," prev" " next"。如果使用它们,则模板会在级别的缩略图旁边添加注释。

如果可能(如果我的主要问题已经解决),我想保留这些可选参数并能够执行以下操作:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1 |prev=Another region
|2 |next=Yet another region
|3
|4 |prev=Another region |next=Yet another region
|5
|6}}

显然,当我为每个级别设置一个级别模板时,它很容易做到,但是使用这个区域模板,我不能有多个" prev"或" next"参数,如果我的理解是正确的。

在此先感谢您的帮助,如果问题不够明确,请随时提出任何问题!

1 个答案:

答案 0 :(得分:1)

您可以安装ParserFunctions并执行以下操作:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1 |prev1=Another region
|2 |next2=Yet another region
|3
|4 |prev4=Another region |next4=Yet another region
|5
|6}}

并将其放入Region模板中:

{| style="text-align: center;"
{{#if:{{{0|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=0|prev={{{prev0|}}}|next={{{next0|}}} }} }}
{{#if:{{{1|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=1|prev={{{prev1|}}}|next={{{next1|}}} }} }}
{{#if:{{{2|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=2|prev={{{prev2|}}}|next={{{next2|}}} }} }}
{{#if:{{{3|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=3|prev={{{prev3|}}}|next={{{next3|}}} }} }}
{{#if:{{{4|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=4|prev={{{prev4|}}}|next={{{next4|}}} }} }}
{{#if:{{{5|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=5|prev={{{prev5|}}}|next={{{next5|}}} }} }}
{{#if:{{{6|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=6|prev={{{prev6|}}}|next={{{next6|}}} }} }}
|}
相关问题