所有模板内容的集合

Collection of all template contents

在我的组织的媒体维基中,我想创建一个列表,列出过去做出的所有决定以及相应的结果 (Yes/No ..)

为此,我创建了一个新模板,它突出显示了我们协议中的决策,并添加了一个带有决策问题的类别。 (见下面的代码)

'''Decision:''' {{{Question}}}</br>
({{{Yes}}}/{{{No}}}/{{{abstention}}}) [Yes/No/No vote]
{{#ifexpr: {{{Yes}}}>{{{No}}}|[[Decision::{{{Question}}}::Yes| ]]|[[Decision::{{{Question}}}::No| ]]}}

但是当我使用#ask来获取所有问题时。

{#ask: [[Decision::+]]
|?Decision
}}

我无法让它正常工作。我想显示一个 table,其中每一行在一列中都有问题及其对应的结果 (Yes/No)。 我目前的状态是问题后跟 ::Yes::No 之类的 Do you like this question::Yes

我的目标是

__________________________________
|Do you like this question | Yes |
__________________________________

非常感谢您的提前帮助,我觉得解决方案非常接近,但我无法得到我想要的...

假设您的模板每页只实例化一次(每个问题都有自己的页面),您应该分离语义属性,例如:

'''Decision:''' {{{Question}}}

({{{Yes}}}/{{{No}}}/{{{abstention}}}) [Yes/No/No vote]

{{#set:Has question={{{Question}}}|Has decision={{#ifexpr: {{{Yes}}}>{{{No}}}|Yes|No}} }}

  • #set 解析器函数静默创建属性,这比您使用的管道内联语法要好。
  • 语义方法的全部要点是具有...适当的语义。所以在这里你有一个问题和一个决定(是或否),所以对应的语义属性应该是 Has questionHas decision.

那么查询将是:

{{#ask:[[Has question::+]]

|mainlabel=-

|?Has question

|?Has decision

|format=table

}}

如果开始的假设不成立(一个页面中有多个模板实例),您应该转向 #subobject 解析器函数来存储您的属性,而不是 #set,如下所示:

{{#subobject:

|Has question={{{Question}}}

|Has decision={{#ifexpr:{{{Yes}}}>{{{No}}}|Yes|No}}

}}

查询可能保持不变。