Передача знака равенства ('=') параметру в шаблоне MediaWiki

Как я могу использовать символ '=' в параметре шаблона, не нарушая парсер шаблонов? Я не разработчик MediaWIKI, поэтому я не отлаживал код или не проверял журналы, я надеюсь, что у кого-то есть подсказка для экранирования символов, переданных в шаблоны.

Создайте с этим контентом шаблон "Тест":

{{{1}}}

Вот так:

{{ Test | R = 3/(2-(1+1)) }} 

Будет отображать {{{1}}} вместо сложной формулы! Я определил, что символ "=" является виновником.

Ответ 1

Если строка параметров шаблона MediaWiki содержит знак равенства, все до того, как знак будет считаться именем параметра. Если он не содержит знак равенства, строка параметров назначается следующему доступному числовому параметру.

Таким образом, простейшее обходное решение, если вы действительно хотите, чтобы числовое значение параметра содержало знак равенства, заключается в том, чтобы явно его номер, например:

{{ Test | 1 = R = 3/(2-(1+1)) }}

Это приведет к тому, что {{{1}}} внутри шаблона будет расширяться до строки R = 3/(2-(1+1)), так же:

{{ Test | equation = R = 3/(2-(1+1)) }}

приведет к тому, что {{{equation}}} будет расширяться до той же строки.

Ответ 2

Вы можете создать шаблон {{=}}, значение которого =. Затем используйте этот шаблон вместо голого знака равенства в ваших шаблонах, например:

{{ Test | R {{=}} 3/(2-(1+1)) }} 

Ответ 3

Если включено Расширение: переменные, используйте переменную. Определения переменных сохраняют почти все символы, включая = и |, они только выполняют расширение шаблона. Таким образом, это разумно безопасный подход при работе с сложными выражениями и URL-адресами.

{{ #vardefine: myequation | R = 3/(2-(1+1)) }}
{{ Test | {{ #var: myequation }} }}

Ответ 4

Я удивлен, что никто не упомянул об этом, но как насчет побега над персонажем?

Использование = будет работать. Если вы не можете беспокоиться о том, чтобы запомнить код, вы можете создать шаблон Template:= с =, поскольку единственный контент (с использованием неэкранированного = в этом шаблоне просто вызовет такую ​​же проблему снова), а затем включит это как {{=}}