Справка:Пузификатор
Материал из KaschePuzia
«Пузифика́тор» — это невозбранно позаимствованный из Википузии сценарий на JavaScript, который обрабатывает выделенный текст в окне редактирования статьи согласно некоторым правилам пузи-разметки и русской типографики.
Пузификатор запускается первой кнопкой над окном редактирования:
Если в окне редактирования статьи ничего не выделено, Пузификатор обработает весь текст.
Содержание |
Описание работы
Необрабатываемый текст
Сперва прячутся (исключаются из обработки):
- текст, окруженный тегами
<nowiki>,<pre>,<source>,<code>,<tt>,<math>,<gallery> - строки, начинающиеся с пробела (неформатированный текст)
-
{{шаблоны}} -
http://внешние ссылки -
[[внутренние ссылки]] -
<любые теги> -
="атрибуты таблиц"
Замены
Для упрощения переноса статей из английской Википузии производятся замены:
-
[[category→[[Категория -
[[:category→[[:Категория
Некоторые HTML теги заменяются на аналоги пузиразметки:
-
<b>текст</b>и<strong>текст</strong>→'''текст''' -
<i>текст</i>и<em>текст</em></em>→''текст'' -
<hr>→----
Некоторые HTML мнемоники и слова заменяются на символы Юникода:
| Заменяемые | На символ |
|---|---|
| (c) (русское) (с) (латинское) © | © |
| (r) ® | ® |
| (tm) (тм) ™ | ™ |
| (p) (латинское) § | § |
| € | € |
| ¥ | ¥ |
| £ | £ |
| +- ± | ± |
| ~= | ≈ |
| ... … … | … |
| Заменяемые | На символ |
|---|---|
| ° | ° |
| " « » „ “ „ “ ” << >> [1] | " |
| ^2 ² <sup>2</sup> [2] | ² |
| ^3 ³ <sup>3</sup> [2] | ³ |
Примечания:
- ↑ Сразу после << и сразу перед >> не должно быть пробела
- ↑ 2,0 2,1 Сразу после ^2 или ^3 не должно идти других цифр
Одиночный машинописный апостроф ' внутри слов заменяется на правильный апостроф ’.
Дефис, минус и тире
Пузификатор заменяет на минус (−):
- Дефис, за которым следует цифра, и которому предшествует пробел;
- Дефис, за которым следует цифра, и которому предшествует последовательность «sup>» или «sub>».
После обработки минусов Пузификатор заменяет на длинное тире (—):
- Короткое тире (–);
- Дефис, окружённый пробелами ( - );
- Дефис в начале строки (прямая речь);
- Дефис, окружённый с каждой стороны тремя или четырьмя цифрами (1985-1991);
- Дефис, окружённый римскими цифрами (VII-IX);
- Двойной дефис ( -- ), окружённый пробелами или цифрами (1941--1945);
Обратите внимание, что дефис, просто окружённый цифрами, не обрабатывается Пузификатором. Это сделано специально, чтобы избежать многозначностей: «Когда Васе было где-то 3—4 года [нужно тире], он думал, что другие дети в возрастном периоде 3—4 года [нужно тире] не смогут понять, что 3−4=−1 [нужны минусы]».
Кавычки
Пузификатор сначала превращает все расставленные кавычки (« » “ ”„) в обычные ("), а потом вновь их расставляет, но уже согласно правилам набора русского текста: "обычные" кавычки превращаются в «кавычки-ёлочки», а кавычки внутри кавычек в „кавычки-лапки“.
Обработка пробелов
Удаляются лишние пробелы:
- в конце строк
- несколько подряд (заменяются одним)
- перед запятой: «слово , слово» → «слово, слово»
- перед точкой с запятой: «слово ; слово» → «слово; слово»
- после открывающей круглой скобки и перед закрывающей: «бегемот ( гиппопотам )» → «бегемот (гиппопотам)»
- в диапазонах годов и веков: «1988 — 1995» → «1988—1995»
Вставляются пропущенные пробелы:
- после точки в конце предложения: «слово.Слово» → «слово. Слово»
- после запятой: «слово,слово» → «слово, слово»
Для повышения читабельности пузи-разметки также вставляются пропущенные пробелы после знаков * # : и их комбинаций в начале строки, вокруг заголовков (==А== → == А ==), и вставляется отсутствующая пустая строка перед заголовком.
Вставка неразрывных пробелов
Неразрывный юникодовский пробел \x0A00 аналогичен мнемокоду , но выглядит как обычный пробел, благодаря чему статью удобнее редактировать.
Основная проблема с неразрывным пробелом заключается в том, что браузер Firefox версий 1.х и 2.х при редактировании текста автоматически заменяет все неразрывные пробелы на обычные (см. m:Firefox bugs affecting MediaWiki#Fixed bugs, not yet released). Эта проблема решена в тестируемых версиях Firefox 3[1].
В результате простановки неразрывных пробелов Пузификатором в других браузерах и последующего уничтожения их при редактировании в Firefox оба раза получаются неудобные огромные диффы.
В связи с этим Пузификатор использует невидимый неразрывный пробел только в чётных пространствах (то есть только в тех пространствах, где не ведётся обсуждений).
Неразрывный пробел ставится:
- после видимого знака перед тире, чтобы следующая строка не начиналась с тире
- в русские инициалы, например «А.С. Пушкин» → «А. С. Пушкин»
- перед знаком процента (%) или промилле (‰). Так, «5% и 16,7‰» будут преобразованы в «5 % и 16,7 ‰». Исключения составляют такие сокращения, как «5%-й».
- после «№» или «§», если за этими знаками следует цифра.
Обработка сокращений
- Пузификатор заменяет неразрывным юникодовским пробелом U+00A0 пропущенные и обычные пробелы в сокращениях «и т.д.», «и т.п.», «т.н.», «н.э.».
- Неразрывным пробелом заменяется или дополняется при отсутствии пробел после цифр перед обозначениями единиц величин «м», «мм», «см», «дм», «км», «г», «кг», «мг», «с», а также перед сокращениями «тыс.», «млн», «млрд», «трлн». Сокращение «тыс» дополняется точкой. Для остальных точка убирается в тех случаях, если сокращение очевидно не приходится на конец предложения.
- Неразрывным пробелом заменяется пробел после цифр в сокращениях «г.», «гг.», «в.», «вв.».
- Сокращения «в т.ч.», «т.е.» и «т.к.» расшифровываются полностью.
Градусы
Пузификатор расставляет пропущенные знаки градуса, например:
-
+4 C→+4 °C -
-20 F→−20 °F
При этом перед знаком градуса ставится неразрывный пробел.
Сообщения Пузификатора
Сообщения выдаются на английском из-за возможных проблем отображения русских букв в диалоговых окнах в старых версиях браузеров.
Wikificator cannot work in your browser
(В вашем браузере Пузификатор работать не может).
Означает, что ваш браузер не поддерживает регулярные выражения на достаточном уровне. Используйте другой браузер.
Wikificator will process ALL text on this page. Continue?
(Пузификатор обработает весь текст. Продолжить?).
Означает, что реализация JavaScript в вашем браузере не позволяет обработать только выделенный фрагмент. Нажмите «Ok», чтобы разрешить Пузификатору обработать весь текст.
Wikifikator doesn't work on discussion pages
(Пузификатор не обрабатывает обсуждения).
Пузификатор отказывается обрабатывать текст на страницах обсуждений (всех нечётных пространств и в пространстве 4), если находит в нём более одной подписи. Не следует без необходимости править чужие сообщения.
Замечания:
- вы спокойно можете выделить и обработать свою реплику или даже свою прошлую реплику
- в случае острой необходимости обработать всю дискуссию можно перейти к редактированию например своей личной страницы, скопировать текст туда, нажать кнопку Пузификатора, и затем перенести обратно.
Совместимость
Если Вы используете браузер, которого нет в списке, то, пожалуйста, протестируйте в нём работу Пузификатора и добавьте его в список.
Браузеры, в которых Пузификатор работает
- В браузерах, выделенных курсивом, не поддерживается обработка выделения.
- 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
- Safari 3 (под Windows и Mac OS)
Браузеры, в которых Пузификатор не работает
- Arachne 1.70
- Internet Explorer 3.x, 4.x
- MATLAB HelpBrowser 6.x
- Netscape 3.x, 4.x
- Opera 4.x
- Safari 1.3
Известные проблемы
- Плохо прячутся вложенные вызовы шаблонов: только до ближайшего }}. Например в строке
{{шаблон1|1= {{шаблон2}}|2=параметр2}}<code> не спрячется <code>|2=параметр2}}<code> - <code>"Вложенные «кавычки»" правильно обрабатываются только после пробела или в начале строки.
Если пузификатор портит текст
При ошибках в обработке текста следует сообщить об этом на странице Обсуждение справки:Пузификатор. Не забудьте указать конкретный начальный текст, во что он превращается, каким должен быть правильный результат, а также название и версию своего браузера.
Если имеет место редкое исключение из правил обработки Пузификатора, которое невозможно или очень трудно исправить (например, цитата «авторского текста»), следует окружить проблемный кусок текста тегами <nowiki></nowiki>, чтобы Пузификатор его не обрабатывал. При этом для будущих редакторов статьи можно рядом в комментариях указать <!--для защиты от Пузификатора-->.
Технические замечания
Только эвтаназиологи могут изменить программу Пузификатора на странице MediaWiki:Puzificator.js.
Все пожелания по улучшению Пузификатора, а также сообщения о найденных в нём ошибках пишите на странице Обсуждение Справки:Пузификатор.
