如何在不破坏模板解析器的情况下在模板参数中使用'='字符?我不是MediaWIKI的开发人员,所以我没有调试代码或检查日志,我希望这里的某个人有一个提示,可以转义传递给模板的字符。
使用以下内容创建名为“Test”的模板:
{{{ Test | R = 3/(2-(1+1)) }}
}
像这样:
{{1}}
将渲染{{{1}}}而不是复杂的公式!我已经确定'='字符是罪魁祸首。
答案 0 :(得分:20)
如果MediaWiki模板参数字符串包含等号,则符号前的所有内容都将作为参数的名称。如果不包含等号,则将参数字符串分配给下一个可用的数字参数。
因此,最简单的解决方法是,如果您确实希望编号参数值包含等号,则要明确地对其进行编号,如下所示:
{{ Test | 1 = R = 3/(2-(1+1)) }}
这会导致模板中的{
扩展为字符串R = 3/(2-(1+1))
}{{ Test | equation = R = 3/(2-(1+1)) }}
,就像:
{{{equation}}}
将导致{{1}}扩展为相同的字符串。
答案 1 :(得分:11)
您可以创建值为{{=}}
的{{1}}模板。然后使用该模板代替模板中的等号:
=
答案 2 :(得分:3)
我很惊讶没有人提到过这个,但是逃避这个角色呢?
使用message_id
将有效。如果您无法记住代码,则可以使用=
作为唯一内容创建模板Template:=
(在该模板中使用非转义的=
只会导致同样的问题)然后将其包含为=
答案 3 :(得分:1)
如果启用了扩展名:变量,请使用变量。变量定义几乎保留了所有符号,包括=
和|
,它们只执行模板扩展。因此,在处理复杂的表达式和URL时,这是一种相当安全的方法。
{{ #vardefine: myequation | R = 3/(2-(1+1)) }}
{{ Test | {{ #var: myequation }} }}