м (clean up, replaced: Викия → Фэндом (3)) Метка: apiedit |
м (*be) |
||
(не показано 10 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
+ | ::''Это расширение подключено на ФЭНДОМЕ '''по умолчанию'''.'' |
||
+ | |||
{{tocright}} |
{{tocright}} |
||
'''Синтаксический анализатор''' — часть кода [[Справка:MediaWiki|MediaWiki]], позволяющая выполнять логические операции, во время выполнения которых анализатор использует параметры, заданные заранее, и выводит результат. |
'''Синтаксический анализатор''' — часть кода [[Справка:MediaWiki|MediaWiki]], позволяющая выполнять логические операции, во время выполнения которых анализатор использует параметры, заданные заранее, и выводит результат. |
||
− | Анализатор заполняется |
+ | Анализатор заполняется так же, как и [[Справка:Шаблоны|шаблоны]], используя фигурные скобки. Их можно легко распознать по наличию двоеточия или решётки (#) в функции (или же всего сразу, как в случае с <code><nowiki>{{#if:}}</nowiki></code>). |
Список всех доступных анализаторов на вики можно найти на странице «[[Служебная:Version]]». |
Список всех доступных анализаторов на вики можно найти на странице «[[Служебная:Version]]». |
||
== Шаг за шагом == |
== Шаг за шагом == |
||
− | #Подберите нужную функцию анализатора, подходящую для вашей логической операции. Обратите внимание на то, что существует много других доступных функций, позволяющих намного быстрее и легче провести ту или иную операцию.<br>Ниже раздела с примером находится дополнительная информация с ссылками, позволяющими подробнее ознакомится с каждым видом функции анализатора. |
+ | # Подберите нужную функцию анализатора, подходящую для вашей логической операции. Обратите внимание на то, что существует много других доступных функций, позволяющих намного быстрее и легче провести ту или иную операцию.<br />Ниже раздела с примером находится дополнительная информация с ссылками, позволяющими подробнее ознакомится с каждым видом функции анализатора. |
− | #Определите правильный синтаксис, который будете использоваться в функции.<br>В нашем случае |
+ | # Определите правильный синтаксис, который будете использоваться в функции.<br />В нашем случае мы будем использовать функцию [[mediawikiwiki:Help:Extension:ParserFunctions#.23ifexpr|<code><nowiki>{{#ifexpr:}}</nowiki></code>]], которая доступна на всех вики по умолчанию. Её синтаксис:<br /><tt><nowiki>{{#ifexpr:</nowiki> ''условие'' <nowiki>|</nowiki> ''значение, если условие истинно'' <nowiki>|</nowiki> ''значение, если условие ложно'' <nowiki>}}</nowiki></tt>. |
− | #Заполним синтаксис функции.<br><tt><nowiki>{{#ifexpr: 1 > 0 | да | нет }}</nowiki></tt><br>В примере выше мы использовали математическое условие (1 > 0), при истинном значении которого анализатор выдаст нам ''да'', а при ложном значении ''нет''. |
+ | # Заполним синтаксис функции.<br /><tt><nowiki>{{#ifexpr: 1 > 0 | да | нет }}</nowiki></tt><br />В примере выше мы использовали математическое условие (1 > 0), при истинном значении которого анализатор выдаст нам ''да'', а при ложном значении — ''нет''. |
− | #Сохраните страницу с анализатором и убедитесь, что функция возвращает ожидаемое значение. В нашем примере анализатор должен вернуть значение ''да'', так как 1 больше, чем 0.<br><tt><nowiki>{{#ifexpr: 1 > 0 | да | нет }}</nowiki></tt> → '''{{#ifexpr: 1 > 0 | да | нет }}'''.<br>Посмотрим, что произойдёт, если мы изменим условие на 1 < 0. В данном случае анализатор вернёт нам значение ''нет''.<br><tt><nowiki>{{#ifexpr: 1 < 0 | да | нет }}</nowiki></tt> → '''{{#ifexpr: 1 < 0 | да | нет }}'''. |
+ | # Сохраните страницу с анализатором и убедитесь, что функция возвращает ожидаемое значение. В нашем примере анализатор должен вернуть значение ''да'', так как 1 больше, чем 0.<br /><tt><nowiki>{{#ifexpr: 1 > 0 | да | нет }}</nowiki></tt> → '''{{#ifexpr: 1 > 0 | да | нет }}'''.<br />Посмотрим, что произойдёт, если мы изменим условие на 1 < 0. В данном случае анализатор вернёт нам значение ''нет''.<br /><tt><nowiki>{{#ifexpr: 1 < 0 | да | нет }}</nowiki></tt> → '''{{#ifexpr: 1 < 0 | да | нет }}'''. |
− | Пример выше может показаться глупым, ведь мы всегда знаем, что 1 больше 0. Но его возможности увеличиваются, когда мы используем переменную в условии. Давайте представим, что вы создаёте [[Справка:Инфобоксы|инфобокс]] для вики о |
+ | Пример выше может показаться глупым, ведь мы всегда знаем, что 1 больше 0. Но его возможности увеличиваются, когда мы используем переменную в условии. Давайте представим, что вы создаёте [[Справка:Инфобоксы|инфобокс]] для вики о телесериале и хотите автоматически определять возрастную группу персонажа по его возрасту. |
− | Добавив в свой инфобокс анализатор <code><nowiki>{{#ifexpr: {{{Возраст}}} >= 18 | Этот персонаж взрослый | Этот персонаж подросток }}</nowiki></code>, вы получите значение ''Этот персонаж взрослый'', если заданная вами переменная |
+ | Добавив в свой инфобокс анализатор <code><nowiki>{{#ifexpr: {{{Возраст}}} >= 18 | Этот персонаж взрослый | Этот персонаж подросток }}</nowiki></code>, вы получите значение ''Этот персонаж взрослый'', если заданная вами переменная «Возраст» будет больше или равна 18. Если же меньше, анализатор вернёт вам значение ''Этот персонаж подросток''. |
== Встроенные в MediaWiki анализаторы == |
== Встроенные в MediaWiki анализаторы == |
||
Строка 21: | Строка 23: | ||
;<code><nowiki>{{fullurl:}}</nowiki></code> |
;<code><nowiki>{{fullurl:}}</nowiki></code> |
||
:Возвращает URL ссылку заданной страницы. |
:Возвращает URL ссылку заданной страницы. |
||
− | :<code><nowiki>{{fullurl: |
+ | :<code><nowiki>{{fullurl:Вики Сообщества}}</nowiki></code> → {{fullurl:Вики Сообщества}} |
;<code><nowiki>{{#language:}}</nowiki></code> |
;<code><nowiki>{{#language:}}</nowiki></code> |
||
:Конвертирует языковой код в название языка. |
:Конвертирует языковой код в название языка. |
||
Строка 37: | Строка 39: | ||
== Расширение ParserFunctions == |
== Расширение ParserFunctions == |
||
− | Одним из самых популярных |
+ | Одним из самых популярных расширений MediaWiki является расширение [[mediawikiwiki:Extension:ParserFunctions|ParserFunctions]], добавляющее новые полезные функции. Оно по умолчанию включено на всём пространстве ФЭНДОМА и в нём присутствуют функции устаревшего расширения [[mediawikiwiki:Extension:StringFunctions|StringFunctions]], в частности, значимая функция <tt><nowiki>{{#explode}}</nowiki></tt>. |
Расширении ParserFunctions включает в себя функции для математических операций, операций с условиями и операций с временем. Полный список и документацию по данному расширению можно найти [[mediawikiwiki:Help:Extension:ParserFunctions/ru|на официальной странице расширения]]. |
Расширении ParserFunctions включает в себя функции для математических операций, операций с условиями и операций с временем. Полный список и документацию по данному расширению можно найти [[mediawikiwiki:Help:Extension:ParserFunctions/ru|на официальной странице расширения]]. |
||
== Другие расширения == |
== Другие расширения == |
||
− | Существуют также несколько других популярных расширений, добавляющих |
+ | Существуют также несколько других популярных расширений, добавляющих новые функции анализатора. |
− | * [[mediawikiwiki:Extension:Arrays|Arrays]] |
+ | * [[mediawikiwiki:Extension:Arrays|Arrays]] — добавляет <tt><nowiki>{{#arraydefine}}, {{#arrayprint}}, {{#arraysearcharray}}</nowiki></tt>. |
− | * [[mediawikiwiki:Extension:Semantic MediaWiki|Semantic MediaWiki]] |
+ | * [[mediawikiwiki:Extension:Semantic MediaWiki|Semantic MediaWiki]] — добавляет <tt><nowiki>{{#ask}}, {{#set}}, {{#show}}</nowiki></tt>. |
− | * [[mediawikiwiki:Extension:SemanticForms|Semantic Forms]] |
+ | * [[mediawikiwiki:Extension:SemanticForms|Semantic Forms]] — добавляет <tt><nowiki>{{#formlink}}, {{#forminput}}, {{#arraymap}} </nowiki></tt>. |
− | * [[mediawikiwiki:Extension:Simple Calendar|Simple Calendar]] |
+ | * [[mediawikiwiki:Extension:Simple Calendar|Simple Calendar]] — добавляет <tt><nowiki>{{#calendar}}</nowiki></tt>. |
− | * [[mediawikiwiki:Extension:Variables|Variables]] |
+ | * [[mediawikiwiki:Extension:Variables|Variables]] — добавляет <tt><nowiki>{{#var}}, {{#vardefine}}, {{#vardefineecho}}</nowiki></tt>. |
== См. также == |
== См. также == |
||
− | *[[Справка:Инфобоксы|Инфобоксы]] |
+ | * [[Справка:Инфобоксы|Инфобоксы]] |
+ | * [[Справка:Классические инфобоксы]] |
||
− | *[[Справка:Совет-Как создать инфобокс|Совет-Как создать инфобокс]] |
||
− | |||
⚫ | |||
+ | [[be:Help:Сінтаксічны аналізатар]] |
||
[[de:Hilfe:ParserFunctions]] |
[[de:Hilfe:ParserFunctions]] |
||
[[en:Help:Parser functions]] |
[[en:Help:Parser functions]] |
||
[[es:Ayuda:Funciones parser]] |
[[es:Ayuda:Funciones parser]] |
||
[[fr:Aide:Fonctions parseur]] |
[[fr:Aide:Fonctions parseur]] |
||
+ | [[it:Aiuto:Funzioni parser]] |
||
[[ja:ヘルプ:パーサー関数]] |
[[ja:ヘルプ:パーサー関数]] |
||
[[ko:도움말:파서 함수]] |
[[ko:도움말:파서 함수]] |
||
[[pl:Pomoc:Funkcje parsera]] |
[[pl:Pomoc:Funkcje parsera]] |
||
+ | [[pt:Ajuda:Funções parser]] |
||
+ | [[uk:Довідка:Синтаксичний аналізатор]] |
||
[[vi:Trợ giúp:Hàm phân tích cú pháp]] |
[[vi:Trợ giúp:Hàm phân tích cú pháp]] |
||
[[zh:Help:解析器函數]] |
[[zh:Help:解析器函數]] |
||
⚫ |
Версия от 10:38, 31 мая 2021
- Это расширение подключено на ФЭНДОМЕ по умолчанию.
Синтаксический анализатор — часть кода MediaWiki, позволяющая выполнять логические операции, во время выполнения которых анализатор использует параметры, заданные заранее, и выводит результат.
Анализатор заполняется так же, как и шаблоны, используя фигурные скобки. Их можно легко распознать по наличию двоеточия или решётки (#) в функции (или же всего сразу, как в случае с {{#if:}}
).
Список всех доступных анализаторов на вики можно найти на странице «Служебная:Version».
Шаг за шагом
- Подберите нужную функцию анализатора, подходящую для вашей логической операции. Обратите внимание на то, что существует много других доступных функций, позволяющих намного быстрее и легче провести ту или иную операцию.
Ниже раздела с примером находится дополнительная информация с ссылками, позволяющими подробнее ознакомится с каждым видом функции анализатора. - Определите правильный синтаксис, который будете использоваться в функции.
В нашем случае мы будем использовать функцию{{#ifexpr:}}
, которая доступна на всех вики по умолчанию. Её синтаксис:
{{#ifexpr: условие | значение, если условие истинно | значение, если условие ложно }}. - Заполним синтаксис функции.
{{#ifexpr: 1 > 0 | да | нет }}
В примере выше мы использовали математическое условие (1 > 0), при истинном значении которого анализатор выдаст нам да, а при ложном значении — нет. - Сохраните страницу с анализатором и убедитесь, что функция возвращает ожидаемое значение. В нашем примере анализатор должен вернуть значение да, так как 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}}.