在 MediaWiki 中,我可以嵌入页面内容以用作模板的参数吗?

In MediaWiki, can I transclude a page's contents to be used as parameters for a template?

我有一个模板,它采用名为 "name" 和 "type" 的参数。

我目前正在尝试调用该模板并将名为 Input1 的页面的嵌入内容传递给它,该页面简单地说:

name=Thing|type=Whatsit

我这样调用模板:{{TemplateName|{{:Input1}}}}

但是模板只是接收文本 "name=Thing|type=Whatsit"。它没有将文本解析为参数,就好像我是这样调用它的:

{{TemplateName|name=Thing|type=Whatsit}}

有没有什么方法可以让 MediaWiki 将页面内容视为实际参数,并在此基础上设置 {{{name}}} 和 {{{type}}}?我有一个宏伟的计划,即能够使用另一个模板 Foreach,以这种方式创建对模板的多次调用,将 Input1、Input2 等传递给它。

无法将要用作模板参数的页面内容嵌入。 MediaWiki 首先解析模板表达式的结构,即 '{{', '|'和 '}}'。随后它会扩展该表达式内的模板,但如果此扩展包含“|”这是 interpreted as a literal '|' and not a parameter separator. Hence the number of parameters can no longer change. This behavior used to be necessary to make the {{!}} template 工作,用于插入文字 '|'在模板参数中。

但是,通过改变嵌入的顺序,您仍然可以完全按照自己的意愿去做。 模板参数可以用来construct the name of another template。因此,您可以将模板的名称作为参数传递给包含您的参数的页面:{{:Input1|TemplateName}}。您的 'Input' 页面将被写为:

{{{{{1|Standard}}}
|Name=Input1
|Param1=Value1
|Param2=Value2
}}

因此,包含参数为 {{:Input1|TableView}} 的页面将产生所需的结果:

{{TableView
|Name=Input1
|Param1=Value1
|Param2=Value2
}}