【问题标题】:Semantic Mediawiki - Passing a variable to a templateSemantic Mediawiki - 将变量传递给模板
【发布时间】:2015-06-22 09:46:01
【问题描述】:

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

例如;

查询:

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

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

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

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

谢谢,

【问题讨论】:

  • 如果您发布 Template:plainText 以及它调用的其他模板,这将很有用。

标签: mediawiki mediawiki-templates semantic-mediawiki


【解决方案1】:

分离需要在模板中完成。 如果您使用匿名参数,例如 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

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

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 2019-04-03
    • 2011-05-08
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多