FANDOM


Це розширення підключено на Фандомі за замовчуванням.

Синтаксичний аналізатор — частина коду 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 аналізатори Редагувати

{{fullurl:}}
Повертає URL посилання заданої сторінки.

{{fullurl:Центральна спільнота}}https://spilnota.fandom.com/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0_%D1%81%D0%BF%D1%96%D0%BB%D1%8C%D0%BD%D0%BE%D1%82%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}}.

Див. також Редагувати

Community content is available under CC-BY-SA unless otherwise noted.