Википедия:Викификатор

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Короткая ссылка-перенаправление
  • ВП:ВФ
  • ВП:ВКФ

Викификатор — инструмент для автоматической обработки вики-текста согласно некоторым правилам вики-разметки и русской типографики. Запускается нажатием соответствующей кнопки над окном редактирования и обрабатывает либо выделенный текст, либо сразу весь текст при отсутствии выделения текста.

Викификатор написан на JavaScript’е. Код находится в пространстве MediaWiki.

Сообщения об ошибках и пожелания по улучшению следует добавлять на страницу обсуждения.

Запуск

Викификатор можно запустить с клавиатуры сочетанием Ctrl+Alt+W (в macOS Ctrl+⇧ Shift+W)[1]. Также существуют кликабельные кнопки:

Невозможно включить Викификатор в визуальном редакторе по состоянию на ноябрь 2025 года.

По некоторым подсчётам[2], в русской Википедии 1 % всех страниц Викификатором обрабатывают примерно за 2—3 недели.

Описание работы

Необрабатываемый текст

Перед обработкой текста Викификатор исключает из обработки:

  • текст, окружённый тегами <nowiki>, <pre>, <source>, <code>, <tt>, <math>, <gallery>, <chem>
  • строки, начинающиеся с пробела (неформатированный текст)
  • {{шаблоны}}
  • http://внешние ссылки
  • [[внутренние ссылки]] (текст ссылки после | не прячется)
  • <любые теги> (кроме <!-- комментариев -->)
  • ="атрибуты таблиц"

Замены

Для унификации и упрощения переноса статей из английской Википедии заменяются:

  • [[Category:[[Категория:
  • [[File: / [[Image: / [[Изображение:[[Файл:

HTML-теги на вики-разметку:

  • <b>текст</b> и <strong>текст</strong>'''текст'''
  • <i>текст</i> и <em>текст</em>''текст''
  • <hr>----

В соответствии с договорённостями русской типографики:

Сокращения «в т. ч.», «т. е.» и «т. к.» расшифровываются полностью.

HTML-мнемоники заменяются на символы Юникода (отключено в пространстве шаблонов):

  • &copy;©
  • &#167;§ (для кодов больше 127)
  • &#x221a; (для кодов больше 7F)

Некоторые сочетания также заменяются на символы:

Заменяемые На символ
(tm)
+- ±
~=
...
<<
>>[зам. 1]
"
^2[зам. 2] ²
^3[зам. 2] ³

Примечания

  1. Сразу после << и сразу перед >> не должно быть пробела.
  2. 1 2 Сразу после ^2 или ^3 не должно идти других цифр.

Дефис, минус и тире

Викификатор заменяет на минус (−):

  • дефис, за которым следует цифра и которому предшествует пробел
  • дефис, за которым следует цифра и которому предшествует последовательность «sup>» или «sub>»

После обработки минусов Викификатор заменяет на длинное тире (—):

  • короткое тире (–)
  • дефис, окружённый пробелами ( - )
  • дефис в начале строки (прямая речь)
  • дефис, окружённый с каждой стороны тремя или четырьмя цифрами (1985-1991)
  • дефис, окружённый римскими цифрами (VII-IX)
  • двойной и тройной дефисы ( -- и --- ), окружённые пробелами или цифрами (1941--1945)

Дефис, просто окружённый цифрами, не обрабатывается Викификатором. Это сделано специально, чтобы избежать многозначностей: «Когда Васе было где-то 3—4 года [нужно тире], он думал, что другие дети в возрастном периоде 3—4 года [нужно тире] не смогут понять, что 3−4=−1 [нужны минусы]».

Кавычки

Викификатор сначала конвертирует все кавычки (« » “ ”„) в тексте в обычные ("), а потом вновь их расставляет, но уже согласно правилам набора русского текста и руководству: "обычные кавычки" конвертируются в «кавычки-ёлочки», а кавычки внутри кавычек — в „кавычки-лапки“.

Кавычки за пределами курсивного текста запрыгивают внутрь курсива: «текст» становится «текст». Аналогично и с полужирным: «текст» — согласно тому же руководству.

Обработка пробелов

Удаляются лишние пробелы:

  • в конце строк
  • несколько подряд (заменяются одним)
  • перед запятой: «слово , слово» → «слово, слово»
  • перед точкой с запятой: «слово ; слово» → «слово; слово»
  • после открывающей круглой скобки и перед закрывающей: «бегемот ( гиппопотам )» → «бегемот (гиппопотам)»
  • в диапазонах годов и веков: «1988  1995» → «1988—1995»
  • перед сносками: слово <ref>...</ref> слово<ref>...</ref>

Вставляются пропущенные пробелы:

  • после точки в конце предложения: «слово.Слово» → «слово. Слово»
  • после запятой: «слово,слово» → «слово, слово»

Также для повышения читабельности вики-разметки вставляются пробелы:

  • после знаков * # : и их комбинаций в начале строки
  • вокруг заголовков (==А== == А ==)
  • вставляется пустая строка перед заголовком, если других пустых строк там нет
  • удаляется пустая строка после заголовка

Вставка неразрывных пробелов

Неразрывные пробелы расставляются:

  • Перед тире после видимого знака (чтобы при завороте строки тире не отрывалось от предыдущего текста). Например, в «Пушкин — наше всё».
  • В русских инициалах. Например, «А.С. Пушкин» → «А. С. Пушкин».
  • В сокращениях «и т. д.», «и т. п.», «т. н.», «н. э.», «до н. э.», «и. о.»
  • В сокращениях единиц измерения: «а. е.», «а. е. м.», «л. с.», «мм рт. ст.»
  • В обозначениях сторон света: «в. д.», «з. д.», «с. ш.», «ю. ш.»

Цифры

  • Перед знаком процента (%), промилле (‰). Так, «5% и 16,7‰» будут преобразованы в «5 % и 16,7 ‰». Исключения составляют такие сокращения, как «5%-й».
  • Перед знаком градуса, если за ним следует обозначение шкалы. «10°C и 11,5°F» будут преобразованы в «10 °C и 11,5 °F».
  • После «№» или «§», если за этими знаками следует цифра.
  • После цифр перед обозначением единиц измерения «мкм», «нм», «мм», «см», «дм», «м», «км», «г», «кг», «мг», «с», а также перед сокращениями «тыс.», «млн», «млрд», «трлн». Сокращение «тыс» дополняется точкой. Для остальных точка убирается в тех случаях, если сокращение не приходится на конец предложения.
  • После цифр перед обозначениями года и века: «год», «г.», «гг.», «век», «в.», «вв.».

При этом в нечётных пространствах и в пространстве «Википедия» (то есть везде, где могут быть обсуждения) вместо неразрывного пробела используется обычный, чтобы минимизировать изменения в чужих сообщениях, а также не допустить слишком большие сравнения версий из-за Firefox 1 и 2 (подробнее см. по ссылке «неразрывные пробелы» выше).

Градусы

Викификатор расставляет пропущенные знаки градуса, например:

  • +4 C+4 °C
  • -20 F−20 °F

При этом перед знаком градуса ставится неразрывный пробел.

Захват в ссылки

Викификатор для удобства заменяет викификацию некоторых слов и словосочетаний на равносильную или на устоявшуюся.

  • в [[2009]] годув [[2009 год]]у
  • в [[2009 год в кино|2009]] годув [[2009 год в кино|2009 году]]
  • [[Луиджи д’Амброзио|Луиджи]] д’Амброзио[[Луиджи д’Амброзио]]
  • [[горох|гороховый]][[горох]]овый
  • [[:en:pea|горох]]овый[[:en:pea|гороховый]]

Последние две замены работают в том случае, если в «хвосте» только строчные русские или латинские буквы.

Сообщения Викификатора

Викификатор обработает ВЕСЬ текст на этой странице. Продолжить?
Означает, что реализация JavaScript в браузере не позволяет обработать только выделенный фрагмент. Нажмите OK, чтобы разрешить Викификатору обработать весь текст.
Викификатор не обрабатывает страницы обсуждения целиком.
Выделите ваше сообщение — обработано будет только оно.
Викификатор отказывается обрабатывать текст на страницах обсуждений (всех нечётных пространств и в пространстве 4 «Википедия»), если находит в нём более одной подписи. Не следует без необходимости править чужие сообщения.

Известные проблемы

  • "Вложенные «кавычки»" правильно обрабатываются только после пробела или в начале строки.

Если Викификатор портит текст

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

Короткая ссылка-перенаправление
  • ВП:ЗЩТВФ

Если имеет место редкое исключение из правил обработки Викификатора, которое невозможно или очень трудно исправить (например, цитата «авторского текста»), следует окружить проблемный кусок текста тегами <nowiki></nowiki> либо поместить его в {{no wikify}}, чтобы Викификатор его не обрабатывал. При этом для будущих редакторов статьи стоит рядом в комментарии указать <!-- защита от Викификатора -->.

Помните, что это так называемый «костыль» — временное и неидеальное решение. Если Викификатор совершает однотипную ошибку, её стоит исправить, а не заключать неверно исправляемый текст в тег nowiki.

Для того чтобы Викификатор не вставлял пробел после знака пунктуации в некоторых относительно распространённых особых случаях, можно использовать шаблоны {{точка}}, {{запятая}}, {{двоеточие}} (или их короткие синонимы {{тчк}}, {{зпт}}, {{colon}}). Примеры употребления указаны в документации этих шаблонов.

Расширения

Некоторые расширения можно подключить непосредственно в настройках:

Другие расширения находятся на странице персональных скриптов, например Кирлат — исправление смеси кириллицы и латиницы.

Вы можете создавать собственные расширения для Викификатора, если знаете регулярные выражения. Ваш код будет выполнен после всех замен, встроенных в Викификатор, кроме расстановки кавычек.

Код расширения следующий:

window.wfPlugins = window.wfPlugins || [];
window.wfPlugins.push(function (txt, r) {
// Здесь ваши замены. Например:
// r( /<br\s?\/>/g, '<br>' );
});

Его нужно разместить у себя в common.js или другом подключаемом скрипте.

Если нужно выполнение ваших замен до скрытия шаблонов, то везде замените переменную wfPlugins на wfPluginsT.

См. также

Примечания

  1. Для вызова Викификатора комбинацией клавиш в любом браузере можно подключить себе персональный скрипт.
  2. В 2017 году был проведён анализ количества правок после добавления новой замены для исправления кавычек, см. соответствующую реплику на форуме.
  3. ответы справочной службы вопрос № 206286. Грамота.ру (3 октября 2006). — «школы № 32, 13, 5». Архивировано 18 февраля 2025 года.