Баг в парсере CMS MediaWiki

Мною был найден интересный баг в парсере CMS . Я конечно уже добавил его на официальный баг трекер, но хотелось бы поделиться им со своими читателями.

Как известно, в шаблонах MediaWiki есть два типа параметров: именованные и порядковые (числовые). Так вот если в значении числового параметра будет символ «равно» (=), то параметр этот будет отброшен. В именованных параметрах всё нормально.

Пример

Есть шаблон quote.

<span>{{{1|{{{q|{{{text|}}}}}}}}}</span>{{#if:{{{2|{{{cite|{{{source|}}}}}}}}}|<cite>— {{{2|{{{cite|{{{source|}}}}}}}}}</cite>}}

Если вызвать его так:

{{quote|some text|source from http://site.loc?id=5}}

То второй параметр будет отброшен т.к. в нём встречается «равно». Т.е. шаблоном будет возвращено только следующее:

<span>some text</span>

в пример добавил для того, чтобы было целесообразно использовать «равно», а вообще не причём.

Однако если вызвать этот же шаблон вот так:

{{quote|some text|cite=some source from http://site.loc?id=5}}

То всё будет работать как и задумывалось, т.е. шаблон вернёт это:

<span>some text</span><cite>— source from http://site.loc?id=5</cite>

Таким образом проблема со знаком «равно» в параметрах шаблонов MediaWiki наблюдается только у порядковых аргументов, а у именованных такого нет.

Замечу, что баг был найден на версии MediaWiki 1.21.1

Поделиться!
Tags: , , , , , , ,

49.6MB | MySQL:53 | 0,275sec