【问题标题】:Collection of all template contents所有模板内容的集合
【发布时间】:2019-06-12 18:23:24
【问题描述】:

在我的组织的媒体 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 |
__________________________________

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

【问题讨论】:

    标签: templates mediawiki wiki semantic-mediawiki


    【解决方案1】:

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

    '''决定:''' {{{Question}}}

    ({{{是}}}/{{{否}}}/{{{弃权}}}) [是/否/否投票]

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

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

    那么查询将是:

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

    |主标签=-

    |?有问题

    |?有决定

    |格式=表格

    }}

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

    {{#子对象:

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

    |已决定={{#ifexpr:{{{Yes}}}>{{{No}}}|Yes|No}}

    }}

    查询可能保持不变。

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2019-04-25
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多