Вики Сообщества

Голосование за Вики Месяца началось! Успейте проголосовать за любимую вики до 26 марта.

ПОДРОБНЕЕ

Вики Сообщества
Регистрация
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