Вики Сообщества
Advertisement
Вики Сообщества
Это расширение подключено на ФЭНДОМЕ по умолчанию.

Синтаксический анализатор — часть кода MediaWiki, позволяющая выполнять логические операции, во время выполнения которых анализатор использует параметры, заданные заранее, и выводит результат.

Анализатор заполняется так же, как и шаблоны, используя фигурные скобки. Их можно легко распознать по наличию двоеточия или решётки (#) в функции (или же всего сразу, как в случае с {{#if:}}).

Список всех доступных анализаторов на вики можно найти на странице «Служебная:Version».

Шаг за шагом[]

  1. Подберите нужную функцию анализатора, подходящую для вашей логической операции. Обратите внимание на то, что существует много других доступных функций, позволяющих намного быстрее и легче провести ту или иную операцию.
    Ниже раздела с примером находится дополнительная информация с ссылками, позволяющими подробнее ознакомится с каждым видом функции анализатора.
  2. Определите правильный синтаксис, который будете использоваться в функции.
    В нашем случае мы будем использовать функцию {{#ifexpr:}}, которая доступна на всех вики по умолчанию. Её синтаксис:
    {{#ifexpr: условие | значение, если условие истинно | значение, если условие ложно }}.
  3. Заполним синтаксис функции.
    {{#ifexpr: 1 > 0 | да | нет }}
    В примере выше мы использовали математическое условие (1 > 0), при истинном значении которого анализатор выдаст нам да, а при ложном значении — нет.
  4. Сохраните страницу с анализатором и убедитесь, что функция возвращает ожидаемое значение. В нашем примере анализатор должен вернуть значение да, так как 1 больше, чем 0.
    {{#ifexpr: 1 > 0 | да | нет }}да.
    Посмотрим, что произойдёт, если мы изменим условие на 1 < 0. В данном случае анализатор вернёт нам значение нет.
    {{#ifexpr: 1 < 0 | да | нет }}нет.

Пример выше может показаться глупым, ведь мы всегда знаем, что 1 больше 0. Но его возможности увеличиваются, когда мы используем переменную в условии. Давайте представим, что вы создаёте инфобокс для вики о телесериале и хотите автоматически определять возрастную группу персонажа по его возрасту.

Добавив в свой инфобокс анализатор {{#ifexpr: {{{Возраст}}} >= 18 | Этот персонаж взрослый | Этот персонаж подросток }}, вы получите значение Этот персонаж взрослый, если заданная вами переменная «Возраст» будет больше или равна 18. Если же меньше, анализатор вернёт вам значение Этот персонаж подросток.

Встроенные в MediaWiki анализаторы[]

Программное обеспечение MediaWiki по умолчанию имеет свои собственные анализаторы, весь список которых можно найти на MediaWiki.org. В нашем случае мы приведём самые полезные.

{{fullurl:}}
Возвращает URL ссылку заданной страницы.
{{fullurl:Вики Сообщества}}https://community.fandom.com/ru/wiki/%D0%92%D0%B8%D0%BA%D0%B8_%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0
{{#language:}}
Конвертирует языковой код в название языка.
{{#language:es}} → español
{{lc:}}
Переводит все буквы строки в строчные (противоположный эффект у {{uc:}}).
{{lc:ПРИВЕТ}} → привет
{{ns:}}
Определяет название пространства имён по его номеру.
{{ns:4}} → Вики Сообщества
{{plural:}}
Выводит форму множественного числа (исключая первый параметр) в зависимости от числа (первый параметр).
{{PLURAL:3|страница|страницы|страниц}} → страницы
{{PLURAL:5|страница|страницы|страниц}} → страниц

Расширение ParserFunctions[]

Одним из самых популярных расширений MediaWiki является расширение ParserFunctions, добавляющее новые полезные функции. Оно по умолчанию включено на всём пространстве ФЭНДОМА и в нём присутствуют функции устаревшего расширения StringFunctions, в частности, значимая функция {{#explode}}.

Расширении ParserFunctions включает в себя функции для математических операций, операций с условиями и операций с временем. Полный список и документацию по данному расширению можно найти на официальной странице расширения.

Другие расширения[]

Существуют также несколько других популярных расширений, добавляющих новые функции анализатора.

  • Arrays — добавляет {{#arraydefine}}, {{#arrayprint}}, {{#arraysearcharray}}.
  • Semantic MediaWiki — добавляет {{#ask}}, {{#set}}, {{#show}}.
  • Semantic Forms — добавляет {{#formlink}}, {{#forminput}}, {{#arraymap}} .
  • Simple Calendar — добавляет {{#calendar}}.
  • Variables — добавляет {{#var}}, {{#vardefine}}, {{#vardefineecho}}.

См. также[]

Advertisement