MediaWiki:替换翻译中的标签

MediaWiki: replace a tag in transclusion

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

为了包括这个例子,我想要打印模板的代码并显示它。所以我需要把文本写下来两次:一次用 <pre> 标签包围来显示文本,另一次用纯文本来显示解释的例子。

为了仅保留文本一次,我考虑过将示例插入这样的子页面中 <pre>{{SomeTemplate|SomeParameter}}</pre> 并嵌入此文本以在说明页面中显示它。

因此,对于代码,我只是嵌入了 {{/subpage}},而对于要显示的实际模板,我的计划是使用来自 https://www.mediawiki.org/wiki/Extension:ParserFunctions.

第一部分工作完美,第二部分我无法让它工作。我用于替换的代码是

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

但这总是 returns 一个空字符串。事实上,即使是部分

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

returns 相同的空字符串。

够意思了,连代码都

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

returns 没有。

我的计划可行吗?我在语法上做错了什么,或者它在概念上是错误的并且永远行不通?

谢谢

卢卡

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

我发现(此处 https://www.mediawiki.org/wiki/Help:Templates#Usage)前缀 msgnw: 允许嵌入模板的 text 而无需调用它。 所以实现我的目标最简单的方法是创建一个只有代码的子页面,没有 <pre> 然后使用:

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

显示底层代码,

{{/Subpage}}

显示示例。