Mediawiki 参数数目可变的模板

Mediawiki 参数数目可变的模板,mediawiki,mediawiki-extensions,mediawiki-templates,Mediawiki,Mediawiki Extensions,Mediawiki Templates,我正在为一个小游戏建立一个wiki,我面临一个关于模板的问题 维基的组织: 此游戏有多个区域,这些区域由多个关卡组成。我的wiki每个区域有一个页面,该页面包含每个级别的缩影,链接到该级别的页面 现在,我的级别模板有如下内容: |- | [[Image:{{{region_images}}} {{{level}}}.png|200px|link={{{region}}}/{{{level}}}]] 这就是它在区域页面中的使用方式: {| style="text-align: center;"

我正在为一个小游戏建立一个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_图像将是相同的,但不幸的是,它不支持

主要问题:

如你所见,区域和区域图像到处重复,所以我想我可以制作一个模板来处理它

我在想这样的东西:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1
|2
|3
|4
|5
|6}}
这将生成与我上一个示例类似的级别模板。但我对模板还很陌生,我不确定它是否可行。似乎我需要在我的区域模板中列出可变长度的参数,但我找不到类似的东西。如果它不存在,我该怎么做

附属问题:

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

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

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

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

我懂了。但在这种情况下,我必须硬编码区域模板中所有可能的级别编号,对吗?尽管如此,这似乎是一个很好的解决方案,谢谢!是的,MediaWiki core不支持任何类似参数循环的功能。如果你想要这样的东西,你可以使用扩展。