MediaWiki中如何将参数以纯文本形式传递?
解决MediaWiki syntaxhighlight模板竖线符号冲突问题
问题原因
你当前使用的模板通过{{#tag:syntaxhighlight}}调用插件,参数以竖线分隔,当代码内容包含竖线|时,MediaWiki会将其误判为参数分隔符,导致模板解析出错。
解决方法
直接改用<syntaxhighlight>标签的原生写法,将代码内容放在标签内部,从根源避免竖线作为参数分隔符的冲突:
修改后的模板代码:
<syntaxhighlight lang="{{{type|cpp}}}"> {{{code|}}} </syntaxhighlight>
补充说明
- 这种写法下,
{{{code|}}}中的任何内容(包括竖线、特殊符号等)都会被当作纯文本传递给高亮插件,不会触发模板解析错误。 {{{code|}}}的默认值写法依然有效,未传入code参数时会显示空白内容。
如果坚持使用{{#tag}}语法,也可以在调用模板时用双引号包裹包含竖线的code参数值,示例:
{{你的模板名|code="int bitwise = a | b;"|type=cpp}}
但这种方法需要调用者每次主动添加引号,不如修改模板写法省心。
内容的提问来源于stack exchange,提问作者Yichi Chen
相关产品推荐
相关产品推荐

