2

我有语义查询的结果。对于其中一个属性,一个逗号分隔的列表,我想分隔每个项目并将其作为参数传递给模板。但是,我正在努力寻找一种方法来做到这一点。

例如;

询问:

{{#ask: [[Category:Something]] [[Has title::Somethingelse]]
| mainlabel=-
| ?Has property
| link=none
| format=template
| template=plainText
}}

纯文本模板将有结果,这是一个逗号分隔的列表。现在,我想从纯文本模板中分离逗号分隔列表并将每个值作为参数放入另一个模板中。

我试过使用{{#arraydefine:key|values|delimiter|options}},但是当我传递{{#arrayindex:key|0}}给模板时,值没有传递。整个数组以 0 分隔传递。我也尝试过使用{{#vardefine:etc,但这也没有传递变量。

我的问题归结为,如何将变量传递给模板?

谢谢,

4

1 回答 1

0

分离需要在模板中完成。如果您在 http://semantic-mediawiki.org/wiki/Template:Query_output_demo中使用匿名参数

您的参数可以使用如下默认值获取:

{{{1|param1default}}} {{{2|param2default}}} ...

现在您的参数之一是逗号分隔的列表。您可能想使用

#explode

解析器函数以获取 CSV 的不同部分。让我们假设第二个参数有你的 csv 然后:

{{#explode:{{{2}}}|;|0}}
{{#explode:{{{2}}}|;|1}}
...

将提供字段。

为此,您需要扩展

https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions##explode

并根据那里的说明启用它。

于 2015-06-29T19:54:40.953 回答