Существует интересный баг в парсере CMS MediaWiki, что заключается в пропуске значения неявно переданного порядкового параметра символом "равно" (=). Он есть на офиц. баг-трекере. Что он собой представляет?
В шаблонах MediaWiki есть 2 типа параметров: именованные и порядковые (числовые). Если в значении неявно переданного числового параметра будет символ "=", то параметр этот будет отброшен. В явно переданных параметрах всё нормально, как в именованных, так и в числовых.
Примеры
Есть шаблон "quote":
<span>{{{1|{{{q|{{{text|}}}}}}}}}</span>{{#if:{{{2|{{{cite|{{{source|}}}}}}}}}|<cite>— {{{2|{{{cite|{{{source|}}}}}}}}}</cite>}}
Если вызвать его с неявной передачей числовых параметров так:
{{quote|some text|source from site.loc?id=5}}
2-ой пар-тр будет отброшен т.к. в нём встречается символ "=". Т.е. шаблоном будет возвращено только след.:
<span>some text</span>
URL в пример добавлен для того, чтобы было целесообразно использовать "=", а вообще URL ни при чём.
Однако, если вызвать этот шаблон с явной передачей 2-го проблемного параметра как числового вот так:
{{quote|some text|2=some source from site.loc?id=5}}
или как именованного:
{{quote|some text|cite=some source from site.loc?id=5}}
всё будет работать, как и задумывалось, т.е. шаблон вернёт это:
<span>some text</span><cite>— source from site.loc?id=5</cite>
Проблема со знаком "=" в параметрах шаблонов MediaWiki наблюдается только у неявно переданных порядковых аргументов, а у именованных такого нет, т.к. они всегда передаются явно.
Решение
Для решения проблемы можно:
- Передавать порядковые параметры явно так же как и именованные.
- Использ. всевозможные мнемоники символа "=" —
=
,=
,U+003D
.
Версии CMS, устранение
Баг был замечен в MediaWiki вер. 1.21.1, но он есть и в более стар. вер., и на более нов. вер. он никуда не пропал.