在基于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>|}}
不返回任何内容。
我的计划是否可行,我在语法上做错了什么,还是从概念上讲是错误的,并且永远无法奏效?
谢谢
路卡
答案 0 :(得分:0)
经过大量研究,我发现我是从错误的角度解决问题的。
我发现(在https://www.mediawiki.org/wiki/Help:Templates#Usage处,前缀msgnw:
允许在不调用模板的情况下包含模板的 text 。
因此,实现我的目标最简便的方法是创建一个仅包含代码的子页面,而不使用<pre>
,然后使用:
<code>{{msgnw:/Subpage}}</code>
显示基础代码,并且
{{/Subpage}}
显示示例。