模板具有可变数量的参数



我正在为一款小游戏创建一个wiki,我遇到了一个关于模板的问题。

维基组织:

这个游戏有区域,由几个关卡组成。我的wiki上每个区域都有一个页面,这个页面包含每个关卡的微缩图,链接到该关卡的页面。

现在,我的关卡模板是这样的:

|-
| [[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}}

将生成关卡模板,就像我之前的例子一样。但我对模板很陌生,我不确定这是否可行。似乎我需要在我的区域模板可变长度的参数列表,但我找不到这样的东西。如果它不存在,我该怎么做呢?

辅助题:

实际上,我简化了一些情况,但在这款游戏中关卡可以链接到其他关卡,所以我想在区域页面中也指出这一点。关卡模板有可选参数"prev"one_answers"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}}

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

提前感谢您的帮助,如果有不清楚的地方请随时提问!

您可以安装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}}

并将其放入区域模板:

{| 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|}}} }} }}
|}

相关内容

  • 没有找到相关文章

最新更新