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

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

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

  • Кнопка Викификатора в улучшенной панели инструментов:
    WikiEditor-wikify toolbutton-ru.png
  • Кнопка Викификатора в старой панели инструментов:
    Кнопка Викификатора.png

Викификатор написан на JavaScript, его код находится на странице MediaWiki:Gadget-wikificator.js.

Рекомендации по установке Викификатора на своём вики-сайте даны на странице Википедия:Викификатор/Инструкция по установке.

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

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

Викификатор можно запустить с клавиатуры сочетанием Ctrl+Alt+W (в macOS Ctrl+⇧ Shift+W).

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

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

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

  • текст, окружённый тегами <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}}, чтобы Викификатор его не обрабатывал. При этом для будущих редакторов статьи стоит рядом в комментарии указать <!-- защита от Викификатора -->.

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

Расширения

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

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

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

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

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

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

Примечания

  1. Был проведён анализ количества правок после добавления новой замены для исправления кавычек, см. соответствующую реплику на форуме.
  2. Поиск ответов Грамоты.ру.

См. также