【问题标题】:Mediawiki templates: How to get a list of parameter names?Mediawiki 模板:如何获取参数名称列表?
【发布时间】:2016-07-29 21:20:06
【问题描述】:
我正在处理一组复杂的 Mediawiki 模板。旨在为基本编辑器提供一个“外层”页面,他们可以在其中填写参数值和补充文本。这被传递给一个临时模板,该模板将所有参数分解为各种不同的二级模板,这些模板实际处理所有数据组织和页面显示。可能会传递大约 250 个参数,但可能只有 20 到 25 个来自任何一个主页。
有没有办法获取传递给模板的命名参数列表?而不是 {{#if {{{arg}} | 的巨大列表。 arg = {{{arg}}} }}s,只处理那些已知存在的参数会更干净。
【问题讨论】:
标签:
parameter-passing
mediawiki
【解决方案1】:
如果您安装扩展 Semantic MediaWiki,您将有很多处理参数(作为语义属性)的选项。扩展语义结果格式为您提供了更多关于如何显示结果的选项。
【解决方案2】:
据我所知,这是不可能的。请记住,MediaWiki 的模板引擎不是编程语言 :)
但是,在不知道确切用例的情况下,您可能可以通过定义默认值来解决您的问题。而不是:
{{#if {{{arg}}} | {{{arg}}} | default }}
你可以这样做:
{{{arg|default}}}
【解决方案3】:
安装 Scribunto 扩展并将您的模板转换为调用 Scribunto 模块的简单包装器。 Scribunto 模块是 Lua 脚本,可以访问所有参数,无论它们是否已在包装模板的 wikitext 中声明。