ВП:ВФ

**«Викифика́тор»** — это сценарий на JavaScript, который обрабатывает выделенный текст в окне редактирования статьи согласно некоторым правилам вики-разметки и русской типографики. Викификатор запускается кнопкой , расположенной на верхней панели инструментов (доступна только при редактировании статьи в режиме исходного кода). В случае, если в окне редактирования статьи ничего не выделено, викификатор обработает весь текст.

К сожалению, реализация JavaScript в некоторых браузерах (например, Opera 7.0, Konqueror 3.2 и др.) не позволяет обрабатывать только выделенный фрагмент. В этом случае Викификатор попросит подтверждения на обработку всего текста.

## Основные функции

- Заменяет некоторые HTML-теги на аналогичную вики-разметку:
- Теги жирного шрифта (<b></b>, <strong></strong>) на
`'''`; - Теги курсива (<i></i>, <em></em>) на
`''`; - Тег горизонтальной черты (<hr>) на
`----`;

- Теги жирного шрифта (<b></b>, <strong></strong>) на
- Вставляет, где нужно, тире и минус (см. ниже)
- Расставляет правильные кавычки и кавычки внутри кавычек (см. ниже).
- Заменяет (tm), (r) и т. п. на специальные символы (см. ниже).
- Расставляет там, где нужно, знаки градуса «°» (см. ниже).
- Исправляет неправильно указанные служебные слова (см. ниже).
- Расставляет пропущенные пробелы и убирает лишние (см. ниже).
- Корректирует и расшифровывает сокращения (см. ниже).

### Исключения

Викификатор не обрабатывает текст:

- внутри тега <nowiki></nowiki>,
- внутри тега <math></math>,
- внутри тега <pre></pre>,
- внутри тега <gallery></gallery>,
- внутри большинства HTML-тегов и их атрибутов,
- внутри двойных фигурных скобок ({{ и }}),
- внутри двойных квадратных скобок ([[ и ]], или [[ и |),
- внутри номеров ISBN,
- кроме того, Викификатором не обрабатываются строки, начинающиеся с пробела (неформатированный текст).

## Комбинации клавиш

Если Вы используете Internet Explorer или браузеры, использующие его движок, то Викификатор можно вызвать при помощи комбинации клавиш Ctrl+Enter; чтобы быстро отменить изменения, сделанные Викификатором, можно нажать на клавиатуре сочетание Ctrl+Z.

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

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

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

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

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

- Короткое тире (–);
- Последовательности —, – и —;
- Дефис, окружённый пробелами ( - );
- Дефис в начале строки (прямая речь);
- Дефис окружённый с каждой стороны тремя или четырьмя цифрами (1985-1991);
- Дефис, окружённый римскими цифрами (VII-IX);
- Двойной дефис, окружённый пробелами ( -- ) или цифрами (1941--1945);
- Двойной дефис, после которого идут три тильды (--~~~) или слово [[Участник (--[[Участник).

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

## Кавычки

Викификатор сначала превращает все расставленные кавычки в обычные ("), а потом вновь их расставляет, но уже согласно правилам набора русского текста. Таким образом, вначале заменяются на обычные кавычки следующие знаки:

- «
- »
- “
- ”
- „
- «
- »
- „
- “
- „
- “
- ”
- "
- Парные двойные угловые скобки с текстом внутри них (например, <<текст между скобками, который не начинается с пробела и не заканчивается им>>).

Затем "обычные" кавычки превращаются в «кавычки-ёлочки», а кавычки внутри кавычек в „кавычки-лапки“.

Кавычки после знака «равно» и весь текст внутри них Викификатором не обрабатываются. Например, не будут обработаны кавычки в строках: «border="0"», «width= "50%"» и т. п.

## Специальные символы

Викификатор заменяет:

- (c), (с) (русское "С") и © на ©;
- (r) и ® на ®;
- (tm), (тм) и ™ на ™;
- (p) (английское "P") и § на §;
- €, ¥ и £ на €, ¥ и £;
- Сочетания +- и ± на ±;
- Одиночный машинописный апостроф (') внутри слов на правильный апостроф (’).
- Три точки (...) и последовательности … и … на знак многоточия (…).
- Сочетание ~= (приблизительно равно) заменяется на знак ≈.

### Кубы и квадраты

Викификатор заменяет на символы второй и третей степеней (² и ³):

- Сочетания <sup>2</sup>, <sup>3</sup>, ² и ³.
- Сочетания знаков ^2 или ^3, за которыми не следует цифра. Например, см^2, m^2, 5^3, ^2 будут превращены в см², m², 5³, ², а сочетания ^ _ ^, ^33, 4^22 — не будут обработаны.

### Градусы

- Расставляет пропущенные знаки градуса. Так, «+4 C, -10 C, +453 F и -20 F» будут превращены в «+4 °C, -10 °C, +453 °F и -20 °F». Также заменяется обычный пробел перед знаком градуса на неразрывный.
- Заменяет последовательность ° на знак градуса (°).

## Служебные слова

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

- [[Category: на [[Категория:
- [[:Category: на [[:Категория:
- [[Template: на [[Шаблон:
- [[User: на [[Участник:
- [[Image: на [[Изображение:
- [[Media: на [[Медиа:

## Лишние, пропущенные и неразрывные пробелы

### Удаление лишних пробелов

- Удаляются ненужные пробелы перед запятой, а пропущенные после неё пробелы, напротив, вставляются. Так, например, «Учиться,учиться ,учиться , учиться и ещё раз учиться» будет превращено в «Учиться, учиться, учиться, учиться и ещё раз учиться».
- Убирается лишний пробел перед точкой с запятой. Например, «слово ; слово» будет превращено в «слово; слово».
- Удаляются пробелы после открывающей круглой скобки и перед закрывающей. Например, «бегемот ( гиппопотам )» будет превращено в «бегемот (гиппопотам)».
- Удаляются пробелы в диапазонах годов и веков (например, «1988 — 1995» и «XI — XII»).
- Удаляются лишние пробелы после служебных слов «Шаблон», «Категория» и др.
- Удаляются все пробелы в конце строк.
- Несколько идущих подряд пробелов заменяются одним пробелом. Не обрабатываются лишь строки, которые начинаются с пробела (неформатированный текст).

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

Неразрывный юникодовский пробел аналогичен мнемокоду « », но выглядит как обычный пробел, благодаря чему статью удобнее редактировать.

- Неразрывный пробел ставится после видимого знака перед тире, чтобы следующая строка не начиналась с тире.
- Также вставляется неразрывный пробел в русские инициалы (например, «А.С. Пушкин» превращается в «А. С. Пушкин»).
- Вставляется пропущенный пробел после точки в конце предложения. Так, «слово.Слово» будет преобразовано в «слово. Слово».
- Вставляется неразрывный пробел перед знаком процента (%) или промилле (‰). Так, «5% и 16,7‰» будут преобразованы в «5 % и 16,7 ‰». Но не в случае сокращений вроде «5%-й».
- Вставляется неразрывный пробел после «№» или «§», если за этими знаками следует цифра.
- Вставляются пробелы после знаков «*», «#», «:» и их комбинаций в начале строки.
- Вставляются пробелы в начале и конце заголовков, то есть «==Заголовок==» превращается в «== Заголовок ==».

### Обработка сокращений

- Викификатор заменяет неразрывным юникодовским пробелом U+00A0 пропущенные и обычные пробелы в сокращениях «и т.д.», «и т.п.», «т.н.», «н.э.».
- Неразрывным пробелом заменяется или дополняется при отсутствии пробел после цифр перед обозначениями единиц величин «м», «мм», «см», «дм», «км», «г», «кг», «мг», «с», а также перед сокращениями «тыс.», «млн», «млрд», «трлн». Сокращение «тыс» дополняется точкой. Для остальных точка убирается в тех случаях, если сокращение очевидно не приходится на конец предложения.
- Неразрывным пробелом заменяется пробел после цифр в сокращениях «г.», «гг.», «в.», «вв.».
- Сокращения «в т.ч.», «т.е.» и «т.к.» расшифровываются полностью.

## Сообщения об ошибках

В некоторых совсем старых версиях браузеров Викификатор вместо обработки текста может выдавать сообщение об ошибке:

**Сообщение:** *Wikificator cannot work in your browser* (В вашем браузере Викификатор работать не сможет).

**Причина:** Поддержка Javascript в браузере сделана не до конца. В частности, вообще не обрабатываются регулярные выражения.

**Что делать:** Взять другой браузер.

**Характерно для браузеров (дополняйте):** Opera 4.01

**Сообщение:** *Wikificator will not work in Netscape 4.x and less* (Викификатор не будет работать в браузере Netscape версии 4.x и меньше).

**Причина:** Старые версии Нетскейпа, когда встречают регулярное выражение типа replace(/что-то/mg, "на что-то"), почему-то перестают обрабатывать весь последующий за таким выражением код скрипта. Подобные выражения используются в Викификаторе, например, для того, чтобы пропускать текст, начинающийся с пробелов, (неформатированный текст). Во избежание возможных ошибок Викификатор в старых версиях Нетскейпа отключён вообще.

**Что делать:** Воспользоваться более новой версией браузера.

**Характерно для браузеров (дополняйте):** Netscape Communicator 4.06, Сибкон Коммуникатор 4.70.

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

## Технические замечания

Только администраторы проекта могут изменить программу Викификатора на странице MediaWiki:Wikificator.js.

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

Нижняя панель спецсимволов задана на странице MediaWiki:Edittools.

## Совместимость

Если Вы используете браузер, которого нет в списке, то, пожалуйста, протестируйте в нём работу Викификатора и добавьте его в список.

### Браузеры, в которых Викификатор работает:

- Firefox 1.x, Firefox 2.x
*Galeon 1.2.x*, Galeon 1.3.x- Internet Explorer 5.5, 6.x, 7.x (включая и
*Maxthon 1.x*) *Konqueror 3.1.x, 3.2.x, 3.3.x, 3.4.x*, 3.5.x*Mozilla 1.0, 1.2.x*, Mozilla 1.7.x- Netscape 7.x
*Opera 7.x*, Opera 8.x, Opera 9.x*SkipStone 0.8.x*

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

### Браузеры, в которых Викификатор не работает:

- Arachne 1.70
- Internet Explorer 3.x, 4.x
- MATLAB HelpBrowser 6.x
- Netscape 3.x, 4.x
- Opera 4.x
- Safari 1.3

## См. также

- Вукипедия:Как править статьи
- Вукипедия:Викификация
- Вукипедия:Специальные символы
- Вукипедия:Инструменты