MediaWiki:替换包含的标签

时间:2018-09-09 09:45:46

标签: mediawiki mediawiki-templates

在基于MediaWiki安装1.29的自定义Wiki中,我想在模板页面中包含一个示例。

要包含此示例,我既要打印模板的代码,又要显示它。因此,我需要将文本写下两次:一次用<pre>标记包围以显示文本,另一次用纯文本标记以显示解释的示例。

为了只保留一次文本,我考虑过将示例插入到<pre>{{SomeTemplate|SomeParameter}}</pre>这样的子页面中,然后将该文本包含在内以在说明页面中显示。

因此,对于代码,我只包含{{/subpage}},而为了显示实际模板,我的计划是使用{{3}中的<pre></pre>函数将#replace替换为空字符串}}。

第一部分工作正常,第二部分我无法使其正常工作。我用于替换的代码是

{{#replace:{{#replace:{{/subpage}}|<nowiki><pre></nowiki>|}}|<nowiki></pre></nowiki>|}}

但这总是返回一个空字符串。实际上,即使是零件

{{#replace:{{/subpage}}|<nowiki><pre></nowiki>|}}

返回相同的空字符串。

足够有趣,甚至是代码

{{#replace:<nowiki><pre>{{SomeTemplate|SomeParameter}}</pre></nowiki>|<nowiki><pre></nowiki>|}}

不返回任何内容。

我的计划是否可行,我在语法上做错了什么,还是从概念上讲是错误的,并且永远无法奏效?

谢谢

路卡

1 个答案:

答案 0 :(得分:0)

经过大量研究,我发现我是从错误的角度解决问题的。

我发现(在https://www.mediawiki.org/wiki/Help:Templates#Usage处,前缀msgnw:允许在不调用模板的情况下包含模板的 text 。 因此,实现我的目标最简便的方法是创建一个仅包含代码的子页面,而不使用<pre>,然后使用:

<code>{{msgnw:/Subpage}}</code>

显示基础代码,并且

{{/Subpage}}

显示示例。

相关问题