Внимание: Когда вы редактируете эту страницу, вы соглашаетесь на передачу своего вклада по лицензии CC0. Узнать об этом подробнее можно на странице справки.
«Волшебные слова» в MediaWiki — комбинации текста, управляющие поведением, оформлением той или иной страницы в вики, а также выводящие некоторые полезные переменные из базы данных. Более подробную информацию см. в Руководство:Волшебные слова.
Существуют три основных типа «волшебных слов»:
Переключатели поведения: это обычно слова, написанные большими буквами, обрамлённые двойным подчеркиванием, например, __FOO__.
Переменные: это заглавные буквы в двойных фигурных скобках, например, {{FOO}}. В сущности, они очень похожи на шаблоны.
Переменные и функции парсера могут использоваться с подстановкой через subst:, так же, как и шаблоны. Странично-зависимые волшебные слова изменяют или возвращают данные о текущей странице (по умолчанию), даже если слово добавляется через раскрываемый шаблон или включённое в текст системное сообщение.
Переключатели поведения
Переключатели поведения, влияющие на оформление и поведение страниц (если поддерживаются темой оформления) и часто используются для того, чтобы скрыть или показать некоторый элемент страницы. Обратите внимание, что некоторые из них не поддерживаются в теме оформления Минерва.
Заставляет оглавление появиться в обычном месте — перед первым заголовком (отменяет действие __NOTOC__).
__TOC__
Помещает оглавление в текущую позицию (отменяет действие __NOTOC__). Если используется в нескольких местах, то оглавление будет отображено только в первом из них.
Редактирование
__NOEDITSECTION__
Скрывает ссылки «править» для каждой секции страницы. Это особенно полезно, когда заголовок создается из шаблона: нормальный вики-инструмент редактирования разделов в этом случае изменял бы код шаблона, что, как правило, выглядит для пользователя противоестественно. Использование этого шаблона вызовет изменения в самом шаблоне, на всех страницах, в которые он вставлен, и всех остальных шаблонах, вставленных на той же странице. Другой способ смотрите здесь.
__NEWSECTIONLINK__
Добавляет ссылку рядом со вкладкой «править», которая добавляет новый раздел на любых страница, кроме страниц обсуждений (см. добавление раздела в конец страницы).
≥ 1.7
__NONEWSECTIONLINK__
Удаляет ссылку около вкладки «править» на страницах в пространстве «Обсуждение»
Используется на страницах категорий. При просмотре категории заменяет изображения на обычные ссылки.
≥ 1.7
__HIDDENCAT__
Используется на странице категории и позволяет скрыть эту категорию из более старших категорий (в которые включена данная категория) (есть параметры в настройках пользователя для отображения их).
Запрещает выполнение языковой конвертации содержания на сайтах с языковыми вариантами. Например, будет отображён только китайский (zh), вместо таких вариантов, как zh_cn, zh_tw, zh_sg, или zh_hk.
__NOTITLECONVERT__ __NOTC__
Запрещает выполнение языковой конвертации заголовка на сайтах с языковыми вариантами (прочее содержание будет проходить конверсию).
Разное
__START__
Ничего не делает Использовался для указания на начало сообщений базы данных после комментария, который не должен был раскрываться. Удалено в r1695 и полностью удалено в r24784
Запрещает индексацию страницы поисковыми системами (страница не будет отображена в результатах поиска). Подчиняется переменной $wgExemptFromUserRobotsControl.
Помещённая на страницу с перенаправлением, запрещает MediaWiki автоматически обновлять ссылку в случае, когда кто-то, переименовывая страницу, поставил флажок «Исправить перенаправления, указывающие на прежнее название» (для чего требуется $wgFixDoubleRedirects).
Отключает глобальную страницу пользователя. Если присутствует на центральной странице пользователя, то на других вики отображаться не будет, а также определяет, каким цветом будет показана ссылка на страницу пользователя в другой wiki - красным или синим.
Переменные возвращают сведения о текущей странице, вики-проекте или дате. Синтаксис большинства из них похож на синтаксис шаблонов. Переменные, помеченные как "[Затратная функция]", отслеживаются движком, и возможное число их включений на одной странице ограничено.
Если имя шаблона совпадает с переменной, то вызывается переменная (так что для раскрытия шаблона Template:PAGENAME вам придётся написать {{Template:PAGENAME}}). В некоторых случаях добавление параметров может вызвать подключение шаблона; например, {{CURRENTDAYNAME|x}} приведёт к включению шаблона Template:CURRENTDAYNAME, а не значения одноимённой переменной.
Дата и время
Следующие переменные возвращают текущую дату и время в UTC.
Вследствие кэширования страниц браузером и MediaWiki, эти переменные часто показывают когда страница была закэширована, вместо отображения текущего времени.
Значения переменных даты и времени форматируются в зависимости от языковых настроек вики. Начиная с версии 1.19, они зависят от настройки языка конкретной страницы.
Переменная
Результат
Описание
Версия
Год
{{CURRENTYEAR}}
2019
Год
Месяц
{{CURRENTMONTH}}
02
Месяц (номер с дополнением нулями до двузначного числа)
Поддомен или доменное имя (начиная с версии 1.17 больше не зависит от $wgServerName)
{{DIRMARK}}
{{DIRECTIONMARK}}
Выводит маркер направления Юникода, соответствующий направлению языка вики-проекта по умолчанию (‎ на сайтах с письменностью слева направо, ‏ — с письменностью справа налево); полезен в текстах с переменным направлением письма. Начиная с версии 1.19, зависит от языка конкретной страницы.
Возвращает уровень защиты ('autoconfirmed', 'sysop') для заданного переменной действия ('edit', 'move') на текущей странице или пустую строку, если защита не установлена.
Выводит время окончания защиты (напр. "20160418155030", "infinity") для данного действия (напр. "edit", "move") на текущей странице. Возвращает "infinity", если защиты нет.
[Затратная функция] Возвращает источники любой действующей на данную страницу каскадной защиты. Собственное название страницы не возвращают, если только не включают сами себя.
Имя пользователя, сделавшего последнюю правку на странице или пользователя, который на данный момент осуществляет предпросмотр редактированной странице.
Позволяет изменять верхний заголовок текущей страницы. Значение должно быть эквивалентно заголовку по умолчанию, можно только изменять произвольно заглавные буквы некоторых частей заголовка (не всех) и заменять пробелы подчёркиваниями (это поведение можно изменить с помощью $wgRestrictDisplayTitle). Это поведение можно включать и отключать путём изменения значения переменной $wgAllowDisplayTitle; она была отключена до версии 1.10+ и включена во всех последующих версиях.
Может принимать второй параметр со значениями noerror или noreplace, чтобы подавлять сообщение об ошибке, когда на странице используется несколько displaytitle или displaytitle do nothing if a displaytitle уже указан ранее.
Устанавливает ключ сортировки страницы во всех её категориях по умолчанию. Например, если поставить {{DEFAULTSORT:Smith, John}} в конце страницы John Smith, страница по умолчанию в категориях будет отсортировываться в разделе на букву «S». Может быть передан второй аргумент noerror или noreplace для подавления сообщений об ошибках, если даны несколько ключей по умолчанию на одной странице, или чтобы ключ defaultsort не учитывался, если уже есть defaultsort уже определен ранее на странице.
Числа, возвращаемые этими переменными, содержат разделители разрядов (запятая, точка или пробел, в зависимости от языка локализации). Для получения неотформатированных чисел используется флаг «:R» (например, {{NUMBEROFPAGES}} → 736 967 и {{NUMBEROFPAGES:R}} → 736967).
Для волшебных слов, требующих параметра, таких как PAGESINCATEGORY, используйте «|R» (например, {{PAGESINCATEGORY:Help}} и {{PAGESINCATEGORY:Help|R}}, или {{PAGESINCATEGORY:Help|subcats}} и {{PAGESINCATEGORY:Help|subcats|R}}). Это также применимо к вышеописанному {{PAGESIZE:название страницы}}.
Числовые значения переменных форматируются в зависимости от языковых настроек вики. Начиная с версии 1.19, они зависят от настройки языка конкретной страницы.
[Затратная функция] Количество страниц в заданном пространстве имён (замените номер на ID нужного пространства имён). Например, {{PAGESINNAMESPACE:14}} позволит вывести число страниц в категори. {{PAGESINNS:0}} отличается от {{NUMBEROFARTICLES}} тем, что первое включает перенаправления и страницы разрешения неоднозначностей. Отключено по умолчанию, включается через $wgAllowSlowParserFunctions.
≥ 1.7
Названия страниц
Переменная
Результат
Описание
Версия
{{FULLPAGENAME}}
Help:Magic words/ru
Пространство статей и название страницы
≥ 1.6
{{PAGENAME}}
Magic words/ru
Название страницы.
{{BASEPAGENAME}}
Magic words
Название страницы без текущей подстраницы и без указания пространства имён («Страница/подстраница» для «Справка:Страница/подстраница/тест»).
Название подстраницы («тест» для «Страница/подстраница/тест»). Если подстраниц нету, вернётся значение {{PAGENAME}}.
≥ 1.6
{{SUBJECTPAGENAME}} {{ARTICLEPAGENAME}}
Help:Magic words/ru Help:Magic words/ru
Пространство имён и название основной страницы, ассоциированной с текущей (или указанной) страницей обсуждения. Пример: {{SUBJECTPAGENAME:Help talk:Magic words}} вернёт «Help:Magic words».
≥ 1.7
{{TALKPAGENAME}}
Help talk:Magic words/ru
Название страницы обсуждения, ассоциированной с текущей (или указанной) страницей
≥ 1.7
{{ROOTPAGENAME}}
Magic words
Имя страницы, корневой к данной. Возвращает Title со страницы Help:Title/Foo/Bar
≥ 1.22
None of these are affected by changes to the display title using {{DISPLAYTITLE:xxxx}}; the values returned are the original page title.
«Волшебные слова» {{BASEPAGENAME}} и {{SUBPAGENAME}} работают только для пространств имён, в которых включены подстраницы. См. $wgNamespacesWithSubpages, чтобы узнать о включении подстраниц.
Начиная с версии 1.15+, все эти переменные могут принимать параметр, позволяющий указать название страницы, отличающейся от текущей:
{{PAGENAME:Template:Main Page}} → Main Page
Внимание:
Если заголовок содержит любые части, равные "." или "..", волшебное слово не сможет ничего вернуть.
{{PAGENAME:one/./three}} → '. Ничего не возвращается.
Внимание:
Заголовки страниц, содержащие некоторые символы, среди которых одинарная кавычка ' и астериск *, могут при обработке данными конструкциями выдавать неожиданные результаты, как, например, {{PAGESINCATEGORY:{{PAGENAME}}}}. См. сообщения об ошибках T16779, T18474, T37628, и T37746. Одним из простых путей исправления этого может быть помещение имени страницы внутрь #titleparts из расширения ParserFunctions.
Например, для страницы с названием "L'Aquila" следующий код отобразит "Numeric char encoding":
{{#switch:{{PAGENAME}}
| L'Aquila = No translation
| L = Not OK
| L'Aquila = Entity escaping
| L'Aquila = Numeric char encoding
}}
URL-кодирование названий страниц
Также есть эквиваленты для использования в URL-адресах страниц MediaWiki (со знаками подчёркивания вместо пробелов и с URL-кодированием некоторых символов или заменой на числовые коды HTML):
{{FULLPAGENAMEE}}
{{PAGENAMEE}}
{{BASEPAGENAMEE}}
{{SUBPAGENAMEE}}
{{SUBJECTPAGENAMEE}}
{{ARTICLEPAGENAMEE}}
{{TALKPAGENAMEE}}
{{ROOTPAGENAMEE}}
Заметьте, что {{PAGENAME:...}}, {{PAGENAMEE:...}} и {{urlencode:...}} реализованы по-разному. Подробнее см. в Manual:PAGENAMEE encoding.
Функции парсера очень похожи на переменные, но принимают один или более аргументов (на самом деле любые магические слова, принимающие аргументы, являются функциями парсера). Имена функций парсера начинают с символа «#» (хеш), чтобы не путать их с шаблонами.
{{PAGESIZE: имя страницы }} {{PAGESIZE: имя страницы |R}}
180 180
[Затратная функция] Возвращает размер указанной страницы в байтах. Для получения «сырого» числа (никак не отформатированного) используйте кодовый параметр «|R».
[Затратная функция] Выводит уровень защиты (например, "autoconfirmed", "sysop"), установленный для заданного действия (например, "edit", "move") на указанной странице. Возвращает пустую строку, если защита отсутствует.
[Expensive] Outputs the protection expiry (e.g. "20160418155030", "infinity") for a given action (e.g. "edit", "move") on the specified page. Returns "infinity" if not protected.
[Затратная функция] Возвращает источники любой действующей на указанную страницу каскадной защиты. Собственное название страницы не возвращают, если только не включают сами себя.
[Затратная функция] Месяц последней проверенной правки указанной страницы* (начиная с версии 1.17+, число от 01 до 12 (), в более ранних версиях - число от 1 до 12).
Полная ссылка на страницу, зависимая от используемого протокола. Здесь также допустимы интервики-префиксы. Замечание: не ограниченные квадратными скобками (простые) ссылки, зависимые от протокола, не станут активными автоматически.
{{urlencode:строка}} или {{urlencode:строка|QUERY}} {{urlencode:строка|WIKI}} {{urlencode:строка|PATH}}
{{urlencode:x:y/z á é}} or {{urlencode:x:y/z á é|QUERY}} → x%3Ay%2Fz+%C3%A1+%C3%A9 {{urlencode:x:y/z á é|WIKI}} → x:y/z_%C3%A1_%C3%A9 {{urlencode:x:y/z á é|PATH}} → x%3Ay%2Fz%20%C3%A1%20%C3%A9
Обратите внимание, что с версии 1.17 значение по умолчанию изменилось в |WIKI на |QUERY; это может повлиять на шаблоны, использующие эту функцию.
Замена символов, запрещённых к использованию в URL, на %-последовательности (например, пробел будет заменён на %20). Обратите внимание, что выполняющая обратное действие функция urldecode (аналогичная существующей в расширении Extension:StringFunctions) пока не реализована..
Конструкция {{ns:}} заменяется на название пространства имён на текущем языке, оглавление, каноническое имя или псевдоним.
Конструкции {{ns:6}}, {{ns:File}} и {{ns:Image}} (старое имя для File namespace) заменяются на "File". На страницах французской википедии конструкция {{ns:Fichier}} будет считаться корректной, а конструкция {{ns:Datei}} (переведённое на немецкий язык слово "File") — нет.
Действие {{nse:}} аналогично действию функции urlencode с одним отличием: пробелы заменяются на символы "_". Это используется во внешних ссылках.
Неподдерживаемое: {{formatnum:{{formatnum:987.654.321}}}} → 987 654 321 (например, на итальянском языке)
В следующих примерах указаны неправильные аргументы с или без использования |R: {{formatnum:987,654.321|R}} (наименее повреждённая) {{formatnum:987.654,321|R}} {{formatnum:987 654,321|R}} {{formatnum:987 654,321|R}}
Берёт неформатированное число (арабские цифры без разделителей групп разрядов и с точкой в качестве десятичного разделителя) и выводит его в локализованном наборе цифр, отформатированным с десятичным разделителем и разделителями групп согласно текущей локали вики.
Для обратного действия можно использовать параметр |R, для использования в математических ситуациях: он надёжен и должен использоваться только для расформатирования чисел, которые заведомо отформатированы в точности так, как их форматирует formatnum по текущей локали вики.
Параметр NOSEP ("no separators") означает, что никакие групповые и десятичные разделители не изменяются; formatnum преобразует только сами цифры для языков, которые не используют индо-арабскую систему цифр. NOSEP также может предотвратить нестандартную группировку цифр, которую вы не ожидаете.
Внимание:
Ведущие нули не удаляются, взамен можно использовать {{#expr:00001}}, если установлено Расширение:ParserFunctions.
Внимание:
Если вы не подаёте на вход числа в точности в требуемом формате, не ждите надёжного выхода, особенно для неанглийских вики.
Если вам очень нужно отформатировать (по текущей локали вики) число в неизвестном входном формате, можете попробовать использовать formatnum два раза (но не тогда, когда у него может быть десятичная группа, иначе разделитель будет съеден, либо число не отформатируется). Отдавайте себе отчёт, что это скорее хак, чем обычный способ обработки, поэтому выход не может быть надёжным.
{{#dateformat:25 dec 2009|ymd}}
→ 25 dec 2009 (ваша настройка), 2009 Dec 25 (по умолчанию) {{#formatdate:dec 25,2009|dmy}}
→ dec 25,2009 (ваша настройка), 25 Dec 2009 (по умолчанию) {{#dateformat:2009-12-25|mdy}}
→ декабрь 25, 2009 (ваша настройка), December 25, 2009 (по умолчанию) {{#formatdate:2009 dec 25|ISO 8601}}
→ 2009 dec 25 (ваша настройка), 2009-12-25 (по умолчанию) {{#dateformat:25 decEmber|mdy}}
→ 25 decEmber (ваша настройка), DecEmber 25 (по умолчанию) Note: In the example hereinbefore, "your pref" refers to your date preference on the current MediaWiki wiki only.
Formats an unlinked date based on user "date format" preference, and adds metadata tagging it as a formatted date. For logged-out users and those who have not set a date format in their preferences, dates can be given a default: mdy, dmy, ymd, ISO 8601 (all case sensitive). If only the month and day are given, only mdy and dmy are valid. If a format is not specified or is invalid, the input format is used as a default. If the supplied date is not recognized as a valid date (specifically, if it contains any metadata such as from a nested use of these or similar templates), it is rendered unchanged, and no (additional) metadata is generated.
Внимание:
Хотя стандарт ISO 8601 требует дат по григорианскому календаю, параметр ISO в этой функции также отформатирует даты, выпадающие из стандартного григорианского диапазона (например, даты до 1583 г.). Также это волшебное слово не может правильно преобразовывать отрицательные годы (используемые по ISO 8601)и годы BC или BCE (используемые в обычной переписке).
{{padleft:xyz|5|_}} → __xyz {{padleft:xyz|5|abc}} → abxyz {{padleft:xyz|2}} → xyz {{padleft:|1|xyz}} → x
(первый символ строки)
Ввод (первый параметр) дополняется с левой стороны до указанной ширины (второй параметр) с использованием определённых символов (третий параметр). Если третий параметр не указан, строка дополняется нулями.
В версиях до 1.12 использовался только первый символ третьего параметра, но начиная с версии 1.15 используются все символы.
Ошибка (исправлено в r45734): — мультибайтовые символы интерпретируются как два символа, что может исказить ширину. Они также не могут использоваться в качестве отступов.
Здесь приведены волшебные слова, используемые как основные инструменты локализации. Прочие волшебные слова часто зависят от локали вики и настроек или от выбранного языка см в частности #Дата и время, #Форматирование, #Прочее. Расширение:Перевод добавило больше волшебных слов.
Использование этих волшебных слов может быть очень сложным, а документация неполной; больше сведений на PLURAL, GRAMMAR, GENDER.
Использование
Конструкция → Результат
Описание
Версия
{{plural:2|is|are}}
{{plural:0|is|are}} → are {{plural:1*1|is|are}} → is {{plural:21 mod 10|is|are}} → is {{plural:{{#expr:21 mod 10}}|is|are}} → is {{plural:1|is|are}} → is {{plural:2|is|are}} → are {{plural:-1|is|are}} → is {{plural:-2|is|are}} → are {{plural:0.5|is|are}} → are {{plural:1.5|is|are}} → are {{plural:-0.5|is|are}} → are {{plural:-1.5|is|are}} → are Для Русского языка {{PLURAL:5|1=Категория|Категории}} → Категории
Выводит форму множественного числа (исключая первый параметр) в зависимости от числа (первый параметр). Например, для определения множественного числа в русском языке используется остаток от деления на 10.
{{grammar:N|noun}}
Выводит заданное слово в правильной грамматической форме (склонении, падеже), согласно коду грамматической формы, указанному после двоеточия (зависит от языка). Грамматическая трансформация используется во флексивных языках, таких как польский, русский и т.п. См. также $wgGrammarForms.
≥ 1.7
{{gender:username|text for every gender}}
{{gender:Username|male text|female text|text for unspecified}} {{gender:|male text|female text|text for unspecified}} {{gender:.|male text|female text|text for unspecified}}
Замечание: Первый пример ничего не делает. Замечание: Если третий параметр не указан и пользователь явно не задал(а) в настройках свой пол, выводится текст, если пользователь мужчина. Пустое значение первого параметра ({{gender:|) означает текущего пользователя, но может быть использовано только в сообщениях интерфейса (пространство имен MediaWiki).
Точка (.) вместо имени учётной записи означает тот пол, который выбран в этой вики в качестве значения по умолчанию.
{{int:edit}} → Edit (Depends on user language; try: fr • ja)
Переводит данное интерфейсное (interface) сообщение (пространство имён MediaWiki) на язык пользователя. По поводу msgnw и других волшебных слов — см. раздел о модификаторах шаблонов.
Обратите внимание, это может повредить/перепутать ссылки кэша в MediaWiki 1.17 и более ранних версиях, см. T16404.
Вы также можете использовать параметры с переводом. Параметры обозначены $1, $2, $3 и т. д. Например, вот сообщение для editsectionhint: Edit section: $1 В этом примере MediaWiki заменяет $1.
Модификаторы включения
{{Page name|optional params}} обычно включает другую страницу, по умолчанию из Template:namespace.
Эти волшебные слова меняют это поведение.
Использование
Результат
Описание
Версия
{{:xyz}}
В данном случае двоеточие не является модификатором шаблона, но является приставкой для обозначения основного пространства имен. Since transclusion defaults to the Template namespace, you would use for example, {{:UTC}} (vs. {{UTC}}) to include the text of the main namespace article UTC rather than Template:UTC.
{{int:xyz}}
То же, что и {{MediaWiki:xyz}}, кроме того, что стандартное сообщение зависит от подстраниц и языка содержимого/пользователя/uselang. Еще одно различие состоит в том, что это не показывается в "Шаблоны, используемые на этой странице:". Показывается как ⧼xyz⧽, если MediaWiki:xyz не существует. См. также Help:Системные сообщения.
{{msg:xyz}} {{raw:xyz}}
Even if there is a magic word named "xyz", use template:xyz unless the template doesn't exist (equivalent to {{template:xyz}}). Normally, magic words have priority when there is a conflict.
{{raw:xyz}}
If $wgEnableScaryTranscluding is enabled, and this is an interwiki transclusion, include the raw wikitext instead of the html from the foreign wiki.
{{#language:код языка}} {{#language:ar}} {{#language:код языка| целевой код языка}} {{#language:ar|en}}
language code العربية language code Arabic
The full name of the language for the given language code: native name (language autonym) by default, name translated in target language if a target language code is specified. Extension:CLDR must be installed for the translation to work.
Альтернатива тегам парсера XML-стиля MediaWiki или расширений, позволяющая пре-сохранять изменения вики-кода и Расширение:ParserFunctions внутри тега до того, как тег будет обработан. Также предотвращает обработку тэгов в неисполняемых ветвях условных конструкций типа #if. Всё, что находится между тегами, передаётся в первом параметре, а любые атрибуты тегов могут передаваться как значения последующих параметров. Следующий пример:
<имя тега атрибут1="значение1" атрибут2="значение2">Ваш контент находится здесь</имя тега>
…может быть переписан следующим образом:
{{#tag:имя_тега|Ваш контент находится здесь|атрибут1=значение1|атрибут2=значение2}}
{{#tag:ref|Здесь находится текст сноски, и вы можете использовать функцию парсера типа {{#expr: ... }} и волшебное слово типа {{PAGENAME}}.|name="multiple"}}
Внимание:
Чтобы передать пустую строку, вы должны написать {{#tag:имя тега||атрибут1=значение1|атрибут2=значение2}}. В области, зарезервированной для содержания, не должно быть пробелов между вертикальными чертами (т. н. пайпами) ||, находящимися перед атрибутом1.