收集所有模板内容

时间:2019-06-12 18:23:24

标签: templates mediawiki wiki semantic-mediawiki

在我所在组织的媒体Wiki中,我想创建一个过去做出的所有决策的列表以及相应的结果(是/否..)

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

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

但是当我使用#ask来回答所有问题时。

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

我无法使其正常工作。我想显示一张表格,其中每一行都有问题,并且每一列中都有相应的结果(是/否)。 我目前的状态是在问题后跟::Yes::No,例如 Do you like this question::Yes

我追求结果的目标是

__________________________________
|Do you like this question | Yes |
__________________________________

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

1 个答案:

答案 0 :(得分:1)

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

  

'''决策:'''{{{Question}}}

     

({{{Yes}}} / {{{No}}} / {{{{abstention}}}})[是/否/否投票]

     

{{#set:有问题= {{{Question}}} |有决定= {{#ifexpr:   {{{Yes}}}> {{{No}}} |是|否}}}}

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

然后查询将是:

  

{{## sk :: [[有问题:: +]]

     

| mainlabel =-

     

|?有问题

     

|?已决定

     

| format = table

     

}}

如果起始假设不正确(一页内有多个模板实例),则应转到#subobject解析器函数来存储属性,而不是#set,如下所示:

  

{{## subobject:

     

|有问题= {{{Question}}}

     

|已做出决定= {{#ifexpr:{{{Yes}}}> {{{No}}} |是|否}}

     

}}

查询可能保持不变。