Викии Вики
Advertisement
Викии Вики

ParserFunctions — расширение, добавляющее новые функции парсера в дополнение к уже имеющимся (см. «Волшебные слова»).

Все функции, добавляемые расширением, имеют вид:

{{#имя_функции: аргумент 1 | аргумент 2}}

Описание

Автором расширения является Тим Старлинг, первая его версия была написана и установлена на все проекты Фонда Викимедиа в апреле 2006[1], позже над ним также работали Роберт Роде (Robert Rohde), Росс Макклюр (Ross McClure) и Юрай Шимлович (Juraj Šimlovič)[2]. На служебной «Версия MediaWiki» данное расширение находится в категории «Перехватчики синтаксического анализатора». Сейчас, на Единой платформе, используется версия расширения 1.6.0, на старой платформе использовалась версия расширения 1.4.1.

Функции парсера

Функция Синтаксис
#expr {{#expr: математическое выражение}}
Вычисляет математическое выражение, записанное специальным синтаксисом (см. Справка:Вычисления на mediawiki.org).
#if {{#if: проверяемая строка | текст, если строка непуста | текст, если строка пуста}}
#if имеет три аргумента и проверяет первый аргумент на пустоту. Если первый аргумент непустой, то выводится второй аргумент, а если пустой — третий.
#ifeq {{#ifeq: проверяемая строка | образец для сравнения | текст, если проверяемая строка идентична образцу | текст, если проверяемая строка не идентична образцу}}
#ifeq имеет четыре аргумента. Данная функция сравнивает первый и второй аргументы. Если они равны между собой, то выводится третий аргумент, если нет — четвёртый.
#ifexist {{#ifexist: проверяемый заголовок страницы | текст, если страница с таким заголовком существует | текст, если страницы с таким заголовком не существует}}
#ifexist принимает три аргумента: первый — название страницы, второй и третий — некий текст. Функция проверяет наличие страницы с названием, идентичным первому аргументу, и если такая страница существует, то выводится текст второго аргумента, иначе — третьего.
#ifexpr {{#ifexpr: математическое выражение (синтаксис как в #expr) | текст, если результат выражения не равен нулю | текст, если результат выражения равен нулю}}
#ifexpr вычисляет математическое выражение, и если результатом выражения не является 0, то выводится второй аргумент, иначе — третий.
#iferror {{#iferror: выражение | текст, если обнаружена ошибка | текст, если ошибка не обнаружена}}
Данная функция «перехватывает» ошибку (сообщение с тегом <strong class="error">) из первого аргумента. Если обнаружена ошибка, то выводится содержимое второго аргумента, иначе — третьего.
#switch {{#switch: сравниваемая строка или выражение | значение1 = результат1 | … | значениеn = результатn | значение по умолчанию}}
#switch сравнивает сравниваемая строка или выражение с каждым значениеx. Если они идентичны, то выводится соответствующий значению результатx, в противном случае выводится значение по умолчанию
#time {{#time: формат | время | язык}}
Функция позволяет выводить дату и время в заданном формате. Подробнее см. Справка:Расширение:ParserFunctions (раздел #time).
#rel2abs {{#rel2abs: относительный путь | базовый путь}}
Данная функция преобразует относительный путь ссылки (с использованием . и ..) в абсолютный. Относительный путь рассчитывается от параметра базовый путь; если он не указан, то в качестве него выступает полное имя страницы, на которой используется #rel2abs.
#titleparts {{#titleparts: имя страницы | количество выводимых сегментов | номер первого выводимого сегмента}}
Эта функция разделяет заголовок страницы на сегменты, разделённые слешем (/), и затем на выходе возвращает некоторые из этих сегментов. Подробнее см. Справка:Расширение:ParserFunctions (раздел #titleparts).

Примечания