ВП:ВФ
«Викифика́тор» — это сценарий на JavaScript, который обрабатывает выделенный текст в окне редактирования статьи согласно некоторым правилам вики-разметки и русской типографики. Викификатор запускается кнопкой , расположенной на верхней панели инструментов (доступна только при редактировании статьи в режиме исходного кода). В случае, если в окне редактирования статьи ничего не выделено, викификатор обработает весь текст.
К сожалению, реализация JavaScript в некоторых браузерах (например, Opera 7.0, Konqueror 3.2 и др.) не позволяет обрабатывать только выделенный фрагмент. В этом случае Викификатор попросит подтверждения на обработку всего текста.
Основные функции
- Заменяет некоторые HTML-теги на аналогичную вики-разметку:
- Теги жирного шрифта (<b></b>, <strong></strong>) на ''';
- Теги курсива (<i></i>, <em></em>) на '';
- Тег горизонтальной черты (<hr>) на ----;
- Вставляет, где нужно, тире и минус (см. ниже)
- Расставляет правильные кавычки и кавычки внутри кавычек (см. ниже).
- Заменяет (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
См. также
- Вукипедия:Как править статьи
- Вукипедия:Викификация
- Вукипедия:Специальные символы
- Вукипедия:Инструменты