【问题标题】:MediaWiki magic words expand in a templateMediaWiki 魔术词在模板中展开
【发布时间】:2016-11-02 16:23:24
【问题描述】:

在MediaWiki中,是否可以在嵌入之前在模板本身中扩展魔术词,但避免对其进行硬编码?如果是,怎么做?

让我通过一个例子来澄清这个问题。

我有一个模板 A 有一些神奇的词,例如{{fullpagename}},我想用{{TemplateA}}将它包含到页面B中,这样页面B上的结果在渲染后是TemplateA

为了什么?我想要一个模板Book,从中我可以导出具体书籍的其他页面,例如HansChristianAndersenFairyTales,然后我会在第三页使用{{:HansChristianAndersenFairyTales}} FairyTales 将返回Hans Christian Anderson, Fairy Tales [[HansChristianAndersenFairyTales|(details)]]

我已经设法做到了以下几点:

模板书:

{{{author}}}, {{{title}}} /*here I don't know what to put*/

页面/模板 HansChristianAndersenFairyTales:

{{Book
|title=Fairy Tales
|author=Hans Christian Andersen
}}

童话故事

Hans Christian Andersen, Fairy Tales /*the missing link*/

我不知道如何处理最后一个链接包含而不不必要地重复中间模板的标题。如果{{fullpagename}} 在中间模板中展开,一切似乎都解决了……但事实并非如此。

【问题讨论】:

    标签: templates syntax mediawiki


    【解决方案1】:

    这是不可能的。似乎也毫无意义 - 你可以简单地传递名称:

    {{Book
    | title = Fairy Tales
    | author = Hans Christian Andersen
    | page = HansChristianAndersenFairyTales
    }}
    

    【讨论】:

    • 好的,谢谢。我只是尽量避免不必要的输入……但如果不可能,我将添加第三个参数,即页面名称。
    • 好吧,您只需要创建一次模板,这样就不需要大量的输入。如果你真的想保存它,你可以使用{{subst:FULLPAGENAME}}(你可以从某个地方复制它,因为它在所有模板中都是一样的)。 subst 会在您保存模板而不是使用模板时对其进行评估和替换。
    猜你喜欢
    • 1970-01-01
    • 2015-06-05
    • 2011-06-17
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多