Обсуждение Википедии:Викификатор/Архив

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Здесь находятся завершившиеся обсуждения. Просьба не вносить изменений.

Сюда перетащены неактуальные или закрытые темы из Обсуждение Википедии:Викификатор

Вставка тире в Опере[править код]

К сожалению в Опере вставка тире не работает MaxiMaxiMax 18:55, 27 Сен 2004 (UTC)

Ну, это не страшно :) Главное, чтоб ошибка не выдавалась. У меня в опере и мозилле и родная панель инструментов не работает. --Ctac (Стас Козловский) 19:19, 27 Сен 2004 (UTC)

Если вы заметили, то внизу окна редактирования страницы, ниже специальных символов, появилась ссылка «Викификатор». Итак, что эта фенька делает. После нажатия на неё будет обработан текст в окне редактирования::

  1. HTML-теги жирного шрифта (<b>,</b>,<strong>,</strong>) будут изменены на '''
  2. Аналогично поменяются <i>,</i>,<em>,</em> на ''
  3. Неправильные "кавычки" заменяются на «кавычки-ёлочки».
  4. Три точки "..." на знак "…".
  5. Знаки (c), (r), (tm) на ©, ® и ™.
  6. Дефис, окружённый пробелами (" — ") и двойной дефис (" --") на длинное тире ("—").
  7. Пока всё, но список можно расширить.

Браузеры[править код]

Фича точно работает в IE 6.0, Opera 7.0, Mozilla 1.0, Firefox 1.0. Не работает в Opera 4.0, Netscape 4.06. Потестируйте, плиз! Если посчитаете, что фича нужная, то оставим её и напишем к ней справку Википедия:Викификатор. Если же окажется, что фича ненужная и глючная, то придётся с ней распрощаться. --Ctac (Стас Козловский) 21:42, 13 Ноя 2004 (UTC)

Отличная идея! Только у меня Mozilla 1.7.2 и в ней не работает расстановка кавычек (и не может работать, судя по коду).
У меня Мозиллы 1.7.2. нет. Какой код для скрипта лучше использовать, чтоб работало везде? --Ctac (Стас Козловский) 01:04, 14 Ноя 2004 (UTC)

Кавычки в ссылках[править код]

мне кажется, что правильней вносить кавычки в ссылку, а не оставлять их снаружи, т. е., к примеру, «Кин-Дза-Дза!», а не «Кин-Дза-Дза!»... поэтому неплохо было бы заставить Викификатор изменять ссылки вида

«[[Ссылка]]»

на такие

[[Ссылка|«Ссылка»]]

Dionys (Денис Ибаев) 09:07, 6 Янв 2005 (UTC)

Поддерживаю. Дело, как я понимаю за малым — регулярным выражением. --.:Ajvol:. 09:28, 6 Янв 2005 (UTC)
что-то вроде:
s/"\[\[(.+?)\]\]"/\[\[$1\|"$1"\]\]/
после замены всех кавычек на обычные кавычки... Dionys (Денис Ибаев) 09:42, 6 Янв 2005 (UTC)
Готово. А выражение поставил такое:
txt=txt.replace(/"\[\[(.+?)\]\]"/g, "[[$1|«$1»]]");
--Ctac (Стас Козловский) 11:50, 6 Янв 2005 (UTC)
Нашёл ошибку. Неверно обрабатывалась комбинация "[[Ссылка|Текст]]". Поэтому пришлось сделать два выражения:
txt=txt.replace(/"\[\[([^|^\]]+)\]\]"/g, "[[$1|«$1»]]");
 txt=txt.replace(/"\[\[([^|^\]]+)(\|)([^\]]+)\]\]\"/g, "[[$1|«$3»]]");
--Ctac (Стас Козловский) 13:06, 6 Янв 2005 (UTC)

Всё прекрасно работает, но только первый раз. При повторном применении Викификатора, кавычки преврвращаются в машинописные. — Paul Pogonyshev 13:18, 14 Янв 2005 (UTC)

Ctac, ты не заметил этот bug report? — Paul Pogonyshev 13:39, 15 Янв 2005 (UTC)

Исправил. Проблема была в том, что кавычки не расставлялись, если они шли сразу за знаком "|". --Ctac (Стас Козловский) 12:59, 22 Янв 2005 (UTC)

Проблема, что называется, «ширше». Например, в конструкции [[Изображение:…|frame|Теплоход «Адмирал Нельсон»]] Викификатор тоже будет съедать правильные кавычки. — Paul Pogonyshev 14:03, 15 Янв 2005 (UTC)

Странно. У меня всё ок. Ничего не съедается... --Ctac (Стас Козловский) 12:59, 22 Янв 2005 (UTC)
Действительно, странно. У меня уже тоже не съедается… Может с 15 января это уже пофикшено? — Paul Pogonyshev 14:29, 22 Янв 2005 (UTC)


Градусы[править код]

Авторитетный источник в лице Географического энциклопедического словаря 1989 года свидетельствует, что надо писать «20 °C», а не «20° C». — Paul Pogonyshev 15:42, 19 Дек 2004 (UTC)

Исправил. Теперь должно быть всё нормально. Только &nbsp; между цифрой и °C я решил не вставлять, т.к. тогда становится трудно читать текст при редактировании. --Ctac (Стас Козловский) 17:49, 19 Дек 2004 (UTC)
Теперь перед знаком градуса добавляется неразрывный юникодовский пробел. --Ctac (Стас Козловский) 16:50, 3 Янв 2005 (UTC)

Доп пробелы[править код]

Нельзя ли добавить фичу чтобы вставлялись пробелы (если отсутствуют) в вики-форматирование. В частности между "=" и текстом в заголовках и после "*" и "#" в списках. Отсутствием пробела мы сэкономим немного, а читать намного проще. К тому же и викификатор сейчас не обрабатывает кавычки, если они идут сразу после "*". То есть форматирование должно быть как в примере:

== Заголовок ==
* foo
* bar

# test1
# test2

MaxiMaxiMax 07:19, 3 Янв 2005 (UTC)

Сделал пока для * и #, соорудив такое регулярное выражение:
txt=txt.replace(/([\*|#])([\*|#]*)([\w|\d])/g, "$1$2 $3");
--Ctac (Стас Козловский) 16:50, 3 Янв 2005 (UTC)
Сделал обработчик ==заголовков==. --Ctac (Стас Козловский) 11:50, 6 Янв 2005 (UTC)

Feature requests[править код]

  • Замена двойного дефиса, окружённого цифрами, на тире (для диапазонов).
  • Замена дефиса, которому предшествует пробел или тег <sup>/<sub> и за которым сразу следует цифра на знак минуса ("−"). Paul Pogonyshev 10:13, 3 Янв 2005 (UTC)
Готово. --Ctac (Стас Козловский) 13:27, 3 Янв 2005 (UTC)
  • Замена двойных угловых скобок <<вот таких>> на кавычки. --Maxim Razin 20:05, 4 Янв 2005 (UTC)
Сделал. Заодно ещё обрабатываются &lt;&lt; и &gt;&gt; --Ctac (Стас Козловский) 09:49, 5 Янв 2005 (UTC)

Пробел после вертикальной линии[править код]

Не всегда можно вставлять пробел после вертикальной линии [[foo|foobar]]. Только что пытался написать богов-[[асы|асов]] и совершенно неприлично разорвало. --Maxim Razin 19:14, 4 Янв 2005 (UTC)

Это была ошибка в регулярном выражении. Исправил. --Ctac (Стас Козловский) 19:58, 4 Янв 2005 (UTC)

Неразрывный пробел2[править код]

Кстати, а что Вы думаете, если сделать автозамену &nbsp; на неразрывный юникодовский пробел? С одной стороны, при редактировании текст будет легче читаться, но с другой, станет труднее редактировать, т.к. не будет видна разница между неразрывным и обычным пробелом... Никак не могу принять решение. --Ctac (Стас Козловский) 21:17, 13 Янв 2005 (UTC)
Я только за, но по моим наблюдениям, браузеры заменяют неразрыные пробелы на обычные, так что они переживут максимум одну правку. Впрочем, я могу и ошибаться, поскольку «неразрывность» могла потеряться на любой стадии копирование из Emacs в браузер через X clipboard — сохранение страницы. — Paul Pogonyshev 21:32, 13 Янв 2005 (UTC)
Я думаю что не стоит, так как в таком случае можно будет случайно скопировать неразрывный пробел (например для ссылки) и она не будет работать. В то же время и существующие неразрывные пробелы будут убиваться пользователями, которые не в курсе. Я думаю, что стоит оставить HTML-entities. MaxiMaxiMax 04:43, 14 Янв 2005 (UTC)

Локальная викификация[править код]

Хотелось бы иметь возможность применять Викификатор локально, только к части текста. По примеру постановки кавычек вокруг выделеного текста. Это особенно полезно в статьях, где есть части, которые Викификатор может «запороть». — Paul Pogonyshev 13:24, 14 Янв 2005 (UTC)

Мне кажется, что это работало раньше: если выделен кусок текста, то викификатор викифицирует только его. Или это было только мое предложение, которое было отвергнуто? --.:Ajvol:. 14:03, 14 Янв 2005 (UTC)
См. Обсуждение Википедии:Викификатор#Выделение.
--DIG 05:09, 15 Янв 2005 (UTC)

Выделение[править код]

Хотелось бы иметь возможность применять Викификатор локально, только к части текста. По примеру постановки кавычек вокруг выделеного текста. Это особенно полезно в статьях, где есть части, которые Викификатор может «запороть». — Paul Pogonyshev 13:24, 14 Янв 2005 (UTC)

Возможно, имеет смысл викифицировать не всё окно, а только выделение (если оно есть)?
--DIG 22:48, 13 Ноя 2004 (UTC)
Да. Это можно сделать так:
var theBox = document.commandDispatcher.focusedElement;
if (!theBox) return;
var txt="";
if (theBox.selectionStart != theBox.selectionEnd) 
  txt=theBox.value.substring(theBox.selectionStart, theBox.selectionEnd)
else
  txt=theBox.value;
//тут всякие замены
   txt=txt.replace(/\.\.\./g, "\u2026");
   …
//
if (theBox.selectionStart != theBox.selectionEnd) {
  var startPos = theBox.selectionStart;
  var endPos = theBox.selectionEnd;
  theBox.value = theBox.value.substring(0, startPos)
  + txt
  + theBox.value.substring(endPos);
  var cursorPos = endPos + txt.length;
  theBox.selectionStart = cursorPos;
  theBox.selectionEnd = cursorPos;
} 
else {
  theBox.value = txt;
}	

--.:Ajvol:. 23:21, 13 Ноя 2004 (UTC)

Мне кажется, что лучше использовать в качестве репера не .focusedElement, а .wpTextbox1.
--DIG 00:36, 14 Ноя 2004 (UTC)
Код для выделения, не срабатывает ни с focusedElement, ни с wpTextbox1.
Сейчас тестирую новую версия, которая будет корректно работать под всеми браузерами. --.:Ajvol:. 09:55, 14 Ноя 2004 (UTC)

Новая версия выделения[править код]

// находим выделенный текст, или берём весь текст, если ничего не выделено
// на основе кода phpbb
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var txtarea = document.editform.wpTextbox1;
var txt=""
if ((clientVer >= 4) && is_ie && is_win) {
  txt = document.selection.createRange().text;
  if (!txt) {
    txt = txtarea.value;
  }
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd — txtarea.selectionStart > 0))
{
  txt=(txtarea.value).substring(txtarea.selectionStart,  txtarea.selectionEnd)
}
else
{
  txt=txtarea.value;
}
//не забыть про (если необходимо)
//txt=" "+txt; 
/////////////////тут всякие замены
/////////////////тут всякие замены
/////////////////тут всякие замены
// Вставляем текст обратно в окно
//не забыть про (если необходимо)
//txt = txt.substr (1);
if ((clientVer >= 4) && is_ie && is_win) {
  var temp = document.selection.createRange().text;
  if (!temp) {
    txtarea.value=txt;
  }
  else
  document.selection.createRange().text = txt;
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd — txtarea.selectionStart > 0))
{
  var startPos = txtarea.selectionStart;
  var endPos = txtarea.selectionEnd;
  txtarea.value = txtarea.value.substring(0, startPos)
  + txt
  + txtarea.value.substring(endPos);
  var cursorPos = endPos + txt.length;
  txtarea.selectionStart = cursorPos;
  txtarea.selectionEnd = cursorPos;
}
else
{
  txtarea.value=txt;
}


Выдаётся ошибка: "ClientPC — определение отстутствует".
Мне кажется неправильным, что обрабатывается весь текст целиком, если ничего не выделено. Так как тут окажутся в невыгодном положении люди, браузер которых не поддерживает обработку выделения из скрипта (они выделят кусок текста, а им без предупреждения обработается ВЕСЬ текст). Мне кажется тут надо показать alert с вопросом "Вы действительно хотите обработать весь текст статьи Викификатором?"[Да/Нет]. --Ctac (Стас Козловский) 16:58, 16 Ноя 2004 (UTC)

Инициалы[править код]

Викификатор неправильно обрабатывает случаи, когда пробела нет даже перед фамилией. Например, «В.И.Пупкин» преобразовывается в «В. И.Пупкин», а не «В. И. Пупкин». — Paul Pogonyshev 16:42, 29 Янв 2005 (UTC)

Теперь всё обрабатывается. --Ctac (Стас Козловский) 08:56, 13 Мар 2005 (UTC)

Диапазоны[править код]

Викификатор убивает тире в диапазонах: 1941—45 превращается в 1941-45. По-моему, Викификатор вообще не должен трогать существующие тире, потому что, в отличие от кавычек, тире друг на друга не влияют. — Paul Pogonyshev 18:07, 29 Янв 2005 (UTC)

Исправил. Сорри, что тянул с этим так долго. --Ctac (Стас Козловский) 07:18, 14 Мар 2005 (UTC)

Оптимизация[править код]

если уж пошла речь о размерах, то вот участки кода, которые можно оптимизировать:

txt = txt.replace(/\<b\>/g, "\'\'\'");
txt = txt.replace(/\<\/b\>/g, "\'\'\'");
txt = txt.replace(/\<strong\>/g, "\'\'\'");
txt = txt.replace(/\<\/strong\>/g, "\'\'\'");

можно заменить на

txt = txt.replace(/\<\/?(b|strong)\>/g, "\'\'\'");
txt = txt.replace(/\<i\>/g, "\'\'");
txt = txt.replace(/\<\/i\>/g, "\'\'");
txt = txt.replace(/\<em\>/g, "\'\'");
txt = txt.replace(/\<\/em\>/g, "\'\'");

можно заменить на

txt = txt.replace(/\<\/?(i|em)\>/g, "\'\'");
txt=txt.replace(/\<\</g, "\"");
txt=txt.replace(/\>\>/g, "\"");
txt=txt.replace(/\&lt;&lt;/g, "\"");
txt=txt.replace(/\&gt;&gt;/g, "\"");

можно заменить на

txt = txt.replace(/(\<|\>|\&[lg]t;)\1/g, "\"");
txt = txt.replace(/«/g, "\"");
txt = txt.replace(/»/g, "\"");
txt = txt.replace(/“/g, "\"");
txt = txt.replace(/”/g, "\"");
txt = txt.replace(/„/g, "\"");
txt = txt.replace(/–/g, "-");
txt=txt.replace(/\&laquo;/g, "\"");
txt=txt.replace(/\&raquo;/g, "\"");
txt=txt.replace(/\&bdquo;/g, "\"");
txt=txt.replace(/\&ldquo;/g, "\"");
txt=txt.replace(/\&#132;/g, "\"");
txt=txt.replace(/\&#147;/g, "\"");
txt=txt.replace(/\&#148;/g, "\"");
txt=txt.replace(/\&quot;/g, "\"");

можно заменить на

txt = txt.replace(/(«|»|“|”|„|\&((la|ra|bd|ld)quo|#132|#147|#148|quot);)/g, "\"");
txt = txt.replace (/\.{3}/g,'…'); 
txt=txt.replace(/\&hellip;/g, "…");
txt=txt.replace(/\&#133;/g, "…");

можно заменить на

txt = txt.replace(/(\.{3}|\&(hellip|#133);)/g, '…');
txt=txt.replace(/\&#151;/g, "\u2014");
txt=txt.replace(/\&mdash;/g, "\u2014");
txt=txt.replace(/\&ndash;/g, "\u2014");

можно заменить на

txt = txt.replace(/\&(#151|[nm]dash);/g, "\u2014");
txt = txt.replace (/\(c\)/gi, "©");
txt = txt.replace (/\(r\)/gi, "®");
txt = txt.replace (/\(tm\)/gi, "™");
txt=txt.replace(/\(p\)/gi, "\u00A7");
txt = txt.replace (/\(тм\)/gi, "™");
txt = txt.replace (/\(с\)/gi, "©");
txt = txt.replace (/\&copy;/gi, "©");
txt = txt.replace (/\&reg;/gi, "®");
txt = txt.replace (/\&trade;/gi, "™");
txt = txt.replace (/\&sect;/gi, "\u00A7");

можно заменить на

txt = txt.replace(/(\((c|с)\)|\&copy;)/gi, "©");
txt = txt.replace(/(\(r\)|\&reg;)/gi, "®");
txt = txt.replace(/(\((tm|тм)\)|\&trade;)/gi, "™");
txt = txt.replace(/(\(p\)|\&sect;)/gi, "\u00A7");

Dionys (Денис Ибаев) 09:39, 14 Мар 2005 (UTC)

Если можно так соптимизировать - значит нужно это сделать. Заодно выбросить лишние пробелы и заменить имена переменных на однобуквенные. Те, кому надо читать эту программу - разберутся, а остальным нужно чтобы грузилось как можно быстрее. MaxiMaxiMax 09:44, 14 Мар 2005 (UTC)
Ok. Будем оптимизировать. Действительно код был хоть и легко читаемый, но распухший :) --Ctac (Стас Козловский) 11:57, 14 Мар 2005 (UTC)
Викификатор оптимизирован! Был 8,5 Кб, а стал 7,4 Кб. --Ctac (Стас Козловский) 07:21, 15 Мар 2005 (UTC)


Помещено описание в en:Wikipedia:Tools#Wikifikator[править код]

Ramir 12:57, 31 Мар 2005 (UTC)

правильнее было бы называть его «Wikificator»... Dionys (Денис Ибаев) 14:00, 31 Мар 2005 (UTC)
Во-первых, нет, ты неправ. Во-вторых, даже если бы было правильно «wikificator», всё равно лучше назвать с «k»: это правильная транскрипция с русского языка. Ramir 07:46, 1 Апр 2005 (UTC)
это да, но всё же лучше, на мой взгляд, использовать перевод, а не транскрипцию... Dionys (Денис Ибаев) 08:56, 1 Апр 2005 (UTC)
Моё название, кстати, ещё является и прееводом (не на английский). А твоё — ни на какой. Wikifier уже занято (на той же странице). Ramir 09:01, 1 Апр 2005 (UTC)
wikificator от wikification... Dionys (Денис Ибаев) 09:10, 1 Апр 2005 (UTC)
Неправильно. Не по-английски. Ramir 10:24, 1 Апр 2005 (UTC)
хм... поскольку я не знаток английского, то на это мне возразить нечем... снимаю все притензиии... )
кстати, а почему неправильно?... просто интересно... Dionys (Денис Ибаев) 10:32, 1 Апр 2005 (UTC)
В английском нет окончания “-ficate” в смысле «-фицировать». Правильно — только “Wikify”, но “Wikifier”, как я уже сказал, там уже есть. Ramir
К тому же, на мой взгляд, лучше в названии применять транскрипцию, а не перевод.Ramir 09:04, 1 Апр 2005 (UTC)
со взглядами не поспоришь... ) Dionys (Денис Ибаев) 09:10, 1 Апр 2005 (UTC)

Разрывы в словах с сущностями[править код]

В своём нынешнем виде Викификатор вставляет пробелы после точки с запятой (;) внутри слова. Это, наверное, правильно, но в результате рвутся все слова, в которых особые символы (æ, é и др.) записаны сущностями с амперсантами (т. е. &bukva_ili_kod;). Намучался вчера в Сан-Томе и Принсипи. :)) Надо бы сделать или проверку на наличие в слове амерсантов или... вообще не добавлять пробелы после точки с запятой автоматом. Иначе проблем больше, чем пользы. --Amikeco 14:14, 23 Мар 2005 (UTC)

Пофикшено. Теперь пропущенные пробелы после точки с запятой не обрабатываются вообще. --Ctac (Стас Козловский) 17:06, 24 Мар 2005 (UTC)

Выделение[править код]

Я сделал то, что так долго все просили :) Викификатор теперь обрабатывает только выделенный фрагмент, а если ничего не выделено или браузер не даёт получить выделение, то предлагает обработать весь текст целиком. Я тестировал в IE 6.0 и Firefox 1.0. Там работает. В опере 7.0 и Мозилле 1.0 предлагает обработать весь текст целиком. Потестируйте, плиз! --Ctac (Стас Козловский) 06:49, 13 Мар 2005 (UTC)

Здо́рово! В Galeon-1.3.x викификация выделения работает.
--DIG 14:04, 15 Мар 2005 (UTC)
Konquer 3.2.3. selection doesn't work. Only full text.

Я слегка подкорректировал алгоритм, убрав лишние подтверждения. В тех браузерах, где обработать выделение можно, но ничего не выделено, то без лишнийх подтверждений обрабатывается всё окно целиком. Подтверждение на обработку всего текста появляется лишь в тех браузерах, где узнать выделена ли часть текста невозможно. --Ctac (Стас Козловский) 10:43, 19 Мар 2005 (UTC)

Замена дефиса на тире[править код]

Ещё один глюк: замена дефиса на тире в названиях файлов (изображений). См. например Добросовестное использование (авторское право). --.:Ajvol:. 14:56, 27 Фев 2005 (UTC)

Исправлено--Ctac (Стас Козловский) 20:54, 23 Май 2005 (UTC)

Вызов Викификатора комбинацией клавиш[править код]

Я сделал вызов Викификатора при помощи комбинации Ctrl+Enter. Увы, это работает только в MSIE. Что-то не могу придумать как сделать, чтобы это работало и в других браузерах… Потестируйте, плиз. --Ctac (Стас Козловский) 18:29, 19 Мар 2005 (UTC)

В браузерах основанных на Gecko (Galeon, FireFox, Mozilla, Netscape 6.x-7.x, SkipStone и др.) Викификатор теперь можно вызвать комбинацией клавиш Alt+W. К сожалению, подобрать единую комбинацию для IE, Gecko и Opera мне не удалось…--Ctac (Стас Козловский) 10:23, 4 Апр 2005 (UTC)

Пробелы после точек в именах файлов[править код]

Необходимо исправить работу Викификатора в конструкциях типа [[Изображение:DC 2712 gallery.JPG|thumb]] (аналогично для Image и т. п.). Сейчас он вставляет в имя файла пробел, в результате изображение не показывается. MaxiMaxiMax 17:10, 27 Мар 2005 (UTC)

Исправил. Теперь Викификатор вообще ничего не трогает внутри двойных квадратных скобок. --Ctac (Стас Козловский) 17:50, 27 Мар 2005 (UTC)

Неразрывный пробел[править код]

Викификатор должен трактовать неразрывный пробел (&nbsp;) так же как и обычный. В частности, в вопросах расстановки тире и кавычек. — Paul Pogonyshev 21:08, 12 Янв 2005 (UTC)

До сих пор не работает, а было бы полезно, в частности для замены дефиса на тире, когда перед ним стоит nbsp; Nikiforov 21:14, 23 Янв 2005 (UTC)
Я не вижу в этом смысла. Придётся переделывать почти все регулярные выражения, а объём кода викификатора увеличится почти вдвое. А объём кода викификатора и сейчас немаленький ~8,5 Кб, которые людям приходится каждый раз загружать при редактировании страницы. --Ctac (Стас Козловский) 07:17, 14 Мар 2005 (UTC)
Надо его сохранить в виде отдельного файла — тогда его загрузка будет кешироваться браузером.
--DIG 13:58, 15 Мар 2005 (UTC)


Замена символов[править код]

При обработке статьи Полипропилен Викификатор заменил минусы перед отрицательными числами на знак «?», а также в одном случае поменял rowspan="4" на rowspan="4" (труднообъяснимо, что заменил только одно вхождение, хотя там несколько таких вариантов). Браузер Opera 7.54u1 ChVA 19:04, 19 Мар 2005 (UTC)

Баг с минусом пофиксил. --Ctac (Стас Козловский) 19:55, 19 Мар 2005 (UTC)
Случай, когда исправлен rowspan="4" - это не баг. Дело в том, что перед ним стоит сочетание знаков "<<", которые автоматом конвертятся в обычные кавычки, а потом эти кавычки и первые кавычки после "rowspan=" переводятся в ёлочки. --Ctac (Стас Козловский) 20:05, 19 Мар 2005 (UTC)
В данном случае << означает «намного меньше»... не нашёл такого символа (он есть?) Да и стоит он не сразу до, а через границу ячейки («||»). Хотя действительно, вероятность повторения такого редкого сочетания мала. Не думаю, что будут проблемы с этим.
Можно поставить этот символ так <nowiki><<</nowiki> (>>). В TeX есть команды \gg для спецсимвола «много больше» и \ll - «много меньше». К сожалению, через <math></math> их в Википедии почему-то нельзя вызвать. --Ctac (Стас Козловский) 20:55, 19 Мар 2005 (UTC)
Наоборот глюк появился. Теперь знак минуса заменяется на короткое тире (знак минуса расположен по середине высоты цифры, на уровне горизонтального штриха в знаке плюс, а знак тире посередине высоты строчной буквы) (–а –8, +8 −8) --ajvol 20:08, 19 Мар 2005 (UTC)
А теперь? --Ctac (Стас Козловский) 20:22, 19 Мар 2005 (UTC)
ОК (−8 +8) --ajvol 20:27, 19 Мар 2005 (UTC)

Теперь кавычки, идущие после знака «равно» и весь текст внутри них больше не обрабатываются Викификатором. --Ctac (Стас Козловский) 08:45, 27 Мар 2005 (UTC)

Викификатор теперь не умничает и не заменяет &lt;&lt; и &gt;&gt; на кавычки. Двойные угловые скобки теперь превращаются в кавычки только в случае, если после открывающих угловых скобок (<<) в тексте имеются закрывающие (>>), а текст между ними не начинается и не заканчивается пробелом.--Ctac (Стас Козловский) 20:49, 23 Май 2005 (UTC)

Викификатор как объект JS[править код]

можно сделать Викификатор как объект JS с единственным методом run, вызов которого повесить на кнопку "Викификатор":

var wikificator = new function() {
    var flags = new Array();
    flags['regexp']  = true;
    flags['browser'] = true;

    if ("код" == "код".replace(/д/g, "т")) flags['regexp'] = false;
    if (navigator.appName == "Netscape" && Number(navigator.appVersion.substr(0, 1)) < 5) flags['browser'] = false;

    var check = function() {
        if (!flags['regexp']) {
            window.alert("Wikificator cannot work in your browser");
            return flags['regexp'];
        }
        if (!flags['browser']) {
            window.alert("Wikificator will not work in Netscape 4.x and less");
            return flags['browser'];
        }
        return true;
    }

    this.run = function() {
        if (check()) {
            document.editform.wpTextbox1.focus();
            var txt = " " + document.editform.wpTextbox1.value;

            /*
             * Тут происходят все замены
             */

            txt = txt.substr(1);
            document.editform.wpTextbox1.value = txt;
        }
    }
}

Dionys (Денис Ибаев) 12:10, 7 Фев 2005 (UTC)

Можно. Так, действительно, красивее. Но, что это реально даст? Кроме увеличения объёма кода... --Ctac (Стас Козловский) 18:48, 13 Мар 2005 (UTC)
1. так будет «красивее» с точки зрения программного решения, все же ОО-подход имеет свои преимущества;
2. объём кода не увеличится или увеличится незначительно... Dionys (Денис Ибаев) 08:03, 14 Мар 2005 (UTC)
(1) - это конечно верно, зато (2) - не очень хорошо, так как увеличение js произойдёт для всех пользователей, в том числе и тех кто никогда не редактирует статьи а только смотрит их. MaxiMaxiMax 08:26, 14 Мар 2005 (UTC)
вот совершенно не факт, что код увеличится... я сейчас посмотрел, по-моему даже уменьшится... Dionys (Денис Ибаев) 08:38, 14 Мар 2005 (UTC)
Хм. Как это? Если я правильно понял то ты предлашаешь перенести часть кода в monobook.js (а куда бы ещё?). Значит он явно уведичится, раньше-то в нём этого не было. Причём увеличится он для всех посететелей Википедии, независимо от того редактируют ли они данные, а я всё же думаю что тех кто не редактирует - больше. MaxiMaxiMax 08:51, 14 Мар 2005 (UTC)
Или ты просто предлагаешь сделать такой объект в том же MediaWiki:Summary? MaxiMaxiMax 08:54, 14 Мар 2005 (UTC)
вообще то я предлагал упорядочить таким образом код именно в MediaWiki:Summary, о monobook.js я и не помышлял...
кстати, файл monobook.js грузится лишь однажды, при первом заходе на Википедию, так что издержки в случае чего будут не велики... Dionys (Денис Ибаев) 09:08, 14 Мар 2005 (UTC)
Ясно. По-моему эта замена имеет смысл именно если делать её в monobook.js. Однако, как я уже говорил скорее всего для большинства посетителей это замедлит доступ к сайту. Кроме того такое кэширование будет мешать исправлению ошибок и добавлению новых фич в Викификаторе, так как нужно будет каждый раз очищать кэш браузера. MaxiMaxiMax 09:13, 14 Мар 2005 (UTC)
хм, не понятно, «почему эта замена имеет смысл именно если делать её в monobook.js»... можешь пояснить?... Dionys (Денис Ибаев) 09:19, 14 Мар 2005 (UTC)
Тогда бы у тех участников которые редактируют данные, трафик стал бы меньше и страничка редактирования грузилось бы быстрее. MaxiMaxiMax 09:35, 14 Мар 2005 (UTC)
Про быстрее см. разделом выше.
--DIG 15:45, 15 Мар 2005 (UTC)

Оптимизация2[править код]

кроме того, в сходных по смыслу заменах можно использовать такие конструкции:

txt = txt.replace(...).replace(...). ... .replace(...);

Dionys (Денис Ибаев) 09:53, 14 Мар 2005 (UTC)

А все браузеры это поддерживают? Не возникнет ли из-за этого проблем? --Ctac (Стас Козловский) 11:57, 14 Мар 2005 (UTC)
не должно быть проблем... я думаю, все поддерживают... Dionys (Денис Ибаев) 12:11, 14 Мар 2005 (UTC)

Ошибочно корректируется статья Википедия:Шаблоны:Языки - теряется текст, часть текста переезжает на следующий ряд таблицы. --Yurik 08:44, 13 Май 2005 (UTC)

Исправлено. Не возвращался текст внутри тегов nowiki, если эти теги стояли внутри двойных квадратных скобок. --Ctac (Стас Козловский) 21:12, 23 Май 2005 (UTC)

Баг: закомментированное изображение[править код]

Неправильно обрабатывается тег [[Изображение]] внутри комментария. Минимальный пример:

[[1111]] <!-- [[Изображение:something.txt]] --> [[2222]] слова слова [[3333]]

переходит в:

[[1111]] <!-- �2� --> [[Изображение:something.txt]] слова слова [[2222]]

Maxim Razin 08:32, 24 Май 2005 (UTC)

Лечение[править код]

Нередактируемые фрагменты убираются в таком порядке:

nowiki, math, строки, начинающиеся с пробела, ссылки, текст в кавычках после =, HTML-тэги

а возвращаются в таком:

ссылки, строки, начинающиеся с пробела, math, nowiki, HTML-теги, текст в кавычках после =

На самом деле, тут очень много глюков и странно, что этого ещё не заметили :)

Возвращать надо, естественно, в порядке, противоположном исключению. Maxim Razin 08:55, 24 Май 2005 (UTC)

Исправил. :)--Ctac (Стас Козловский) 10:35, 24 Май 2005 (UTC)

Викификатор[править код]

Что-то случилось с викификатором - у меня он текст стирать начал. Например на этой странице он попытался стереть комментарии (заменил их на цифру). Проверил в Firefoxе 1.0.4 и в IE (xp,6.0,sp2) --Yurik 20:34, 13 Май 2005 (UTC)

Мдя, действительно. PCode 20:59, 13 Май 2005 (UTC)
Протестил. У меня вроде бы ничего не стирается. Он стирает любые комментарии или какие-то конретные? --Ctac (Стас Козловский) 19:15, 17 Май 2005 (UTC)
Попробовал использовать викификатор на странице Форума. Добавил пробел и нажал кнопку Викификатора. Не понял почему, но кажется только после третьего нажатия, текст внутри комментария был заменён на "�1�". Разберитесь пож-та, кто в этом деле соображает. DaeX 08:35, 24 Май 2005 (UTC)
Исправлено. --Ctac (Стас Козловский) 11:12, 24 Май 2005 (UTC)


Библиографические ссылки[править код]

Кроме того, нельзя менять дефис на тире в библиографических ссылках вида ISBN 1-234-56789-0. --Maxim Razin 11:19, 8 Мар 2005 (UTC)

В библиографических ссылках, номерах телефонов, ГОСТах и т.п. дефис не надо менять на тире. Там и должен быть дефис. --Ctac (Стас Козловский) 20:54, 23 Май 2005 (UTC)
Именно так. — Paul Pogonyshev 20:58, 27 Май 2005 (UTC)

Кавычки в ссылках[править код]

Мне кажется неправильным, что кавычки в ссылках заносятся в ссылку. Это знаки препинания, и внесение их в ссылку идеологически неверно, так как они не несут семантического смысла -- ведь не будете же вы вносить в ссылку, например, запятые и точки. Наконец, это попросту усложняет вики-разметку для чтения. --Oscar 6 16:47, 15 Май 2005 (UTC)

Согласно правилам, кавычки должны оформляться также, как и текст в них. Т. е. если текст курсивный, то и кавычки, которые его обрамляют, должны быть курсивными. Т. к. ссылка меняет цвет текста, то и кавычки должны тоже оформляться подобным образом. --ajvol 17:48, 15 Май 2005 (UTC)
Убедил. --Oscar 6 18:38, 15 Май 2005 (UTC)

Я добавил обработку кавычек-ёлочек (а не только обычных кавычек) вокруг ссылок. Теперь «ссылка» превращается в «ссылка». --Ctac (Стас Козловский) 21:26, 23 Май 2005 (UTC)

Апостроф[править код]

Неплохо бы в дополнение к кавычкам еще и заменять машинописный апостроф («'») на правильный («’») — символ закрывающей одиночной английской кавычки. Для русской Вики это не слишком важно, но апостроф всё же иногда встречается, особенно в иноязычных словах, а иногда и в русских заимствованных (например, в некоторых фамилиях). Апостроф всегда стоит после буквы. — Paul Pogonyshev 14:45, 27 Май 2005 (UTC)

Тут есть одна потенциальная проблема. Например, кто-то может написать такую формулу x'y=z (икс-штрих или, например, производная x). В ней после обработки викификатором ошибочно вставится апостроф. В принципе можно поставить ограничение, что апостроф должен идти только после букв о, д, o и d (О'Коннор, Д'Артаньян), но и в этом случае остаётся риск (правда, маленький), что кто-то напишет в текст статьи формулы с d' и o'. --Ctac (Стас Козловский) 20:44, 27 Май 2005 (UTC)
Ну, такие формулы так или иначе надо писать через <math>…</math>. По-моему, это не проблема — формула будет кривая так и так, со штрихом или с апострофом. Кстати, я ошибся насчет буквы перед апострофом: в английском слово в принципе может начинаться и с него, например «’cause», от «because». Но не думаю что это критично. — Paul Pogonyshev 20:56, 27 Май 2005 (UTC)
Ok. Вторая проблема в том, что я не до конца уверен, что кавычка и знак апострофа - это одно и то же. Давайте сначала напишем статью апостроф (переведя английскую).--Ctac (Стас Козловский) 21:53, 27 Май 2005 (UTC)
В английской версии статьи про это есть, раздел «Computers and Unicode». — Paul Pogonyshev 22:00, 27 Май 2005 (UTC)
Ok--Ctac (Стас Козловский) 22:02, 27 Май 2005 (UTC)
Я добавил такое выражение:
    txt = txt.replace(/([\wа-яА-ЯёЁ])'([\wа-яА-ЯёЁ])/g, "$1’$2");
Соответственно, апостроф в конце или начале предложения обрабатывается не будет. На всякий случай, чтоб случайно не сделать лишних замен. --Ctac (Стас Козловский) 22:12, 27 Май 2005 (UTC)

Неразрывный пробел[править код]

Стас, а нельзя ли ещё и неразрывный пробел (nbsp) добавить в строчку специальных символов (под полем редактирования статьи)? Иногда он бывает нужен. Я и сам добавил бы, но мне, вероятнее всего, привилегий не хватит.
--DIG 11:53, 27 Окт 2004 (UTC)

Ok. Сделал. Но не злоупотребляйте им, плиз, иначе редактировать статьи становится неудобно. --Ctac (Стас Козловский) 20:21, 28 Окт 2004 (UTC)
Вообщето можно сделать вставку юникодовского неразрывного пробела (будет выглядеть как обычный, но вести себя как неразрывный; занимает 2 байта), но вот только не запутаемся ли мы (и/или скрипты) потом сами делая поиск и замену? --.:Ajvol:. 20:51, 28 Окт 2004 (UTC)
Запутаемся. В поле редактирования он будет выглядеть как обычный — будет непросто их отличать.
--DIG 21:56, 29 Окт 2004 (UTC)
Спасибо! --DIG 21:00, 28 Окт 2004 (UTC)
А какой код у юникодовского двухбайтного пробела? Давайте попробуем. --Ctac (Стас Козловский) 11:32, 29 Окт 2004 (UTC)
Юникодовский символ U+00A0 аналогичен HTML-мнемокоду &nbsp; Только у меня в Firefox PR он ведёт себя как обычный пробел :( --.:Ajvol:. 11:50, 29 Окт 2004 (UTC)
А надо ли?
--DIG 21:56, 29 Окт 2004 (UTC)

Викификатор[править код]

Я подсмотрел в болгарской Википедии что теперь вместо MediaWiki:Copyrightwarning нужно использовать MediaWiki:Summary. Однако, когда я перенёс туда старый текст викификатора, он к сожалению сработал некорректно, в частности с кавычками. Возможно, что ты сумеешь его приручить, это было бы очень полезно для всего проекта. Заранеее спасибо. MaxiMaxiMax 19:05, 1 Янв 2005 (UTC)

Готово. Вроде бы заработало! :) — Ctac (Стас Козловский) 20:43, 1 Янв 2005 (UTC)
Замечательно :) Всё же думаешь выделять кнопки не надо? Как бы с выделенными кнопками он выглядит более очевидно для пользователей. MaxiMaxiMax 06:20, 2 Янв 2005 (UTC)
Поставил кнопки, но у меня что-то с ними странное происходит. При наведении на них мышки почему-то дёргается полоса прокрутки в окне редактирования. --Ctac (Стас Козловский) 08:54, 2 Янв 2005 (UTC)
Хм, видимо зависит от браузера. В IE действительно дёргается, впрочем это почти незаметно, а в Опере такого не происходит. Но в любом случае, мне кажется что так очевиднее. Всё же я не понимаю, почему в Опере ввод осуществляется в отдельное окошко вверху окна редактирования, а не в основное окно. Может это можно как-то побороть? Викификатор ведь меняет именно основное окно. MaxiMaxiMax 09:01, 2 Янв 2005 (UTC)
Викификатор у меня в Опере вроде работает корректно. А инфобокс появляется лишь при нажатии на кнопки со специальными символами. Тут я сделать ничего не могу. "Кнопки" используют родной скрипт движка - тот же, что и кнопки в верхней части окна редактирования. --Ctac (Стас Козловский) 09:32, 2 Янв 2005 (UTC)


Викификатор[править код]

По-моему, ты забыл про «якорь» («^»). Это должно решить проблемы с пробелами. См. Mediawiki talk:Summary. — Paul Pogonyshev 20:30, 4 Янв 2005 (UTC)


Внеси исправление в викификатор[править код]

Тут сегодня воду перемешали. Я решил покопаться и выяснил, что виноват викификатор: cм. Обсуждение Википедии:Викификатор.

Если я правильно понял исходники MediaWiki:Summary, надо перенести эти строки:

//====================================== //Возвращаем обратно HTML-теги ("<" и ">") i=0; r=/\x01([0-9]*)\x02/; while (r.test(txt)) { i++; txt = txt.replace(r, a[i-1]); } //====================================== //Возвращаем обратно текст в кавычках после знака "=" i_equal=0; r_equal=/\x11([0-9]*)\x14/; while (r_equal.test(txt)) { i_equal++; txt = txt.replace(r_equal, a_equal[i_equal-1]); }

перед этими:

//====================================== //Возвращаем обратно текст между и i_links=0; r_links=/\x15([0-9]*)\x16/;

Maxim Razin 09:17, 24 Май 2005 (UTC)

<pre>...</pre>[править код]

Лучше в пространстве между этими тегами  ничего не менять. — Monedula 10:30, 5 сентября 2005 (UTC)[ответить]

Теперь не трогает. --Ctac (Стас Козловский) 20:18, 20 сентября 2005 (UTC)[ответить]

Кавычки в ссылках и названия[править код]

Как я понял, надо ещё сделать так, дабы кавычки в ординарных квадратных скобках викифицировались. Есть ещё небольшая медвежья услуга - викификактор, если ссылка не захватывает кавычки, ставит название (книги, фильма и т.д.) в один и тот же падеж, из-за чего ссылка может навсегда остаться красной, так что пока что обе функции вручную делаю. Brandmeister

Я не совсем понял в чём проблемы. 1. Кавычки в одинарных квадратных скобках всё-таки викифицируются. Пропускается лишь текст внутри двойных квадратных кавычк. 2. Не понятно ещё насчёт кавычек, падежа и запоротых ссылок. Можешь привести пример? --Ctac (Стас Козловский) 22:57, 28 июн 2005 (UTC)

Предлагаю добавить в викификатор следующие автоматические замены:

  • [[Category: на [[Категория:
  • [[:Category: на [[:Категория:
  • [[Template: на [[Шаблон:
  • [[User: на [[Участник:

--Влад Ярославлев 11:59, 29 августа 2005 (UTC)[ответить]

Сделал--Ctac (Стас Козловский) 01:42, 4 октября 2005 (UTC)[ответить]

Лишние пробелы[править код]

А также желательно было бы убирать лишние пробелы там где они хотя и допустимы, но неправильны: в вики-ссылках, интервики и категориях, а также ставить «Category» вместо «category» и т. п. MaxiMaxiMax 07:27, 3 Янв 2005 (UTC)

Сделал (кроме интервики). Как безошибочно определять интервики, не загоняя весь их список в Викификатор я не придумал.--Ctac (Стас Козловский) 01:44, 4 октября 2005 (UTC)[ответить]

&nbsp; и обычный пробел[править код]

Викификатор должен трактовать &nbsp; как обычный пробел в большинстве случаев. В частности, в вопросах расстановки кавычек. Сейчас получается, что он иногда заменяет ёлочки на знаки дюйма, а обратно ёлки не расставляет, потому что встречает неразрный пробел… — doublep 13:32, 2 Июн 2005 (UTC)

Викификатор на другое вики?[править код]

Здраствуйте (извините мой Русский),

можно использовать приспособленную версию Викификатора в РодноУики [1]. Лиценз этого вики не GFDL, а Creative Commons BY-SA 2.5?

Спасибо, --Glimz 16:32, 4 августа 2005 (UTC)[ответить]

Можно. Только в комментарии кода напишите, что он распространяется на условиях GNU FDL и дайте ссылку на википедию. --Ctac (Стас Козловский) 01:49, 4 октября 2005 (UTC)[ответить]

Ещё предложения[править код]

Может быть, нам стоит перенести в Викификатор ещё какие-то функции из автозамен? --CodeMonk 01:01, 4 ноября 2005 (UTC)[ответить]

Поскольку возражений не было, то перенёс ещё некоторые функции. --CodeMonk 02:17, 10 января 2006 (UTC)[ответить]

Внутренние ссылки[править код]

Возможно, стоит исключать из обработки только часть внутренней ссылки до знака «|», а не всю ссылку, если она разделена знаком «|». Есть возражения? --CodeMonk 22:22, 2 ноября 2005 (UTC)[ответить]

Нет возражений, правильно. MaxiMaxiMax 01:26, 3 ноября 2005 (UTC)[ответить]
Сделано. --CodeMonk 01:01, 4 ноября 2005 (UTC)[ответить]

Заменяется на минус: «Дефис, отбитый с двух сторон пробелами, которые окружены цифрами (5 — 2)». Вероятно, это лишнее, поскольку у нас часто пишут так: 1982 — 1987. --CodeMonk 18:49, 16 октября 2005 (UTC)[ответить]

Ну, поскольку возражений не последовало, я это отключу. --CodeMonk 22:22, 2 ноября 2005 (UTC)[ответить]


Градусы[править код]

Я недавно просматривал чарты Юникода и обнаружил, что для градусов есть специальные комбинированные символы: ℃ (2103) для градусов по Цельсию и ℉ (2109) для градусов по Фаренгейту. Может быть, лучше их ставить вместо отдельных ° и C/F ? --CodeMonk 02:25, 3 октября 2005 (UTC)[ответить]

Могут возникнуть проблемы с совместимостью. В IE 4.0 (Windows 98) и IE 5.50 (Windows ME) вместо ℃ и ℉ показываются квадратики. Подобная же проблема возникает в Линуксе в браузерах на движке gecko двухлетней давности. --Ctac (Стас Козловский) 01:08, 4 октября 2005 (UTC)[ответить]
У меня (Firefox на GNU/Linux) показываются, но как-то по-уродски. Так что согласен со Ctacом, лучше не надо. — doublep 09:27, 4 октября 2005 (UTC)[ответить]
А я за. Тем, у кого браузеры n-летней давности, как раз придёт в голову их поменять, например, на Opera, тем более что она теперь абсолютно бесплатна. --Влад Ярославлев 09:40, 4 октября 2005 (UTC)[ответить]

Эти символы (℃ и ℉) предназначены для использования в китайских и японских текстах, поскольку занимают ровно столько же места, сколько один иероглиф. В русских текстах они не нужны. — Monedula 11:17, 4 октября 2005 (UTC)[ответить]

Преобразование ссылок на русские ФИО[править код]

  • Преобразование ссылок на русские ФИО. Например преобразование [[Львов, Алексей Фёдорович]] в [[Львов, Алексей Фёдорович|Алексей Фёдорович Львов]].

Предлагаю регулярное выражение:txt=txt.replace(/\[\[([А-ЯЁ][а-яё]+), ([А-ЯЁ][а-яё]+) ([А-ЯЁ][а-яё]+)\]\]/g, "[[3, $2 $3|$2 $3 3]]") --.:Ajvol:. 21:49, 9 Янв 2005 (UTC)

На мой взгляд, это довольно опасная замена. Кто знает, может быть когда-нибудь появится ссылка на статью, к примеру, о фильме с запятой после первого слова. Я сходу не могу вспомнить такой фильм, но уверен такие названия бывают. Что-нибудь типа «Маэстро, Ваш выход» :)
Короче, я предлагаю усложнить регэсп и сделать так, чтобы он во избежание ошибок обрабатывал только русские имена. То есть те, где отчество заканчивается на "вич, «вна», «чна», а также на «кич» (Лукич, Фокич), «лич» (Силич, Ермилич), «мич» (Зосимич, Кузмич, Фомич), «нич» (Ионич), «тич» (Никитич) и «ьич» (Ильич).
P.S. Кстати, а фамилии могут ещё писаться через дефис. --Ctac (Стас Козловский) 06:44, 12 Янв 2005 (UTC)
Я тут подумал, что может не стоит вообще делать подобную замену. Если обработать списки, к примеру, писателей, где они отсортированы по алфавиту, то ничего хорошего не получится. Списки станет неудобно читать.
Между фамилией и именем/отчеством запятая не ставится, ну совсем не ставится, никогда. Можно вообще её убрать, тогда будет по алфавиту, но мне кажется, что просто викификатор надо избирательно применять (например выделяя викифицируемые абзацы). Потенциально он может много ещё чего напортить. --.:Ajvol:. 20:33, 12 Янв 2005 (UTC)
Слишком неоднозначная замена. Не сто́ит её делать. Запросто может напортить. Кроме того, заменять придётся только русские ФИО (у иностранцев слишком много имён, ещё и в разном порядке), а это уже дополнительные сложности вроде определения окончания фамилии и т. п. Причём учтите, что может так случиться, что у иностранца будет 4 имени, а фамилия случайно будет созвучна со стандартной русской. Так что нет, слишком это сложно и чревато ошибками. LoKi 12:25, 17 января 2006 (UTC)[ответить]

Замена подряд идущих пробелов на один[править код]

Я бы покилил эту фичу. А то иногда получаются замены по всему тексту и листаешь diff, мучительно пытаясь понять, что же вообще изменилось? К тому же, эти пробелы ни на что не влияют с точки зрения форматирования итоговой страницы. Наконец, пробелы можно использовать для выравнивания, например так:

  {{Хитрый шаблон с сотней параметров | а = б
    | параметр           = значение
    | ещё параметр       = другое значение
    | очередной параметр = третье значение
    ...
   }}

Сейчас Викификатор всё это убивает почём зря. — doublep 13:37, 2 Июн 2005 (UTC)

А мне нравится что пробелы убиваются. Текст становится более прилично выглядящим при редактировании. MaxiMaxiMax 14:36, 2 Июн 2005 (UTC)
Зато я полчаса листал твои изменения в Чомском пока дошёл до категорий. Я бы предложил удалять только пробелы в конце строк, так как они уж точно ни зачем не нужны (выравнивать там уже нечего). Но раз ты против… :( — doublep 19:09, 2 Июн 2005 (UTC)
Не. Убиваемые множественные пробелы мне нравятся :) Может сделать, чтоб текст между {{ и }} просто не обрабатывался Викификатором?--Ctac (Стас Козловский) 20:46, 2 Июн 2005 (UTC)
Это вряд ли полезно, мало ли какие там могут быть аргументы. Вот если можно не убивать там пробелы, то это было бы лучше, чем ничего. Кстати, в порядке объяснения: в моих статьях много двойных пробелов, потому что Emacs использует два пробела для обозначения конца предложения (в отличие от точки в конце сокращения). Привык… — doublep 08:07, 5 июн 2005 (UTC)

Уж если вы так не любите пробелы, пусть викификатор удаляет все пробелы в конце каждой строчки. Сейчас один оставляет. — doublep 19:41, 1 июл 2005 (UTC)

Ok. Теперь все пробелы в конце строк убиваются. --Ctac (Стас Козловский) 10:13, 2 июл 2005 (UTC)
Ахтунг! Викификатор теперь убивает пустые строки! — doublep 16:17, 2 июл 2005 (UTC)
Я поставил для обозначения пробелов «\s», забыв, что туда попадают и переводы строк. Maxim Razin поправил мою ошибку. Теперь вроде всё ок.--Ctac (Стас Козловский) 3 июля 2005 12:00 (UTC)

Использовать нежадные операторы[править код]

В конструкциях типа /\<tag\>(.+)\<\/tag\>/ лучше использовать нежадные (not greedy) операторы (+?, *?): /\<tag\>(.+?)\<\/tag\>/, если, конечно, они поддерживаются всеми браузерами. --SergV 21:43, 20 сентября 2005 (UTC)[ответить]

А зачем? Если убрать жадность, то не будут обрабатываться теги внутри тегов. Приведи пример ошибки, которая может возникнуть, если оставить жадность. --Ctac (Стас Козловский) 01:21, 4 октября 2005 (UTC)[ответить]
Там с помощью таких конструкций исключается из обработки текст, заключенный в определенные тэги. Если тэг встречается два раза в строке, исключается и текст между ними. Например, следующий фрагмент будет исключён целиком:
<tag> Текст который нельзя трогать </tag> Нормальный текст <tag> Текст который нельзя трогать </tag>
Вложенные тэги — действительно проблема, об этом я не подумал. --SergV 05:54, 4 октября 2005 (UTC)[ответить]
Я убрал жадность. Посмотрим, что из этого выйдет. --Ctac (Стас Козловский) 09:19, 4 октября 2005 (UTC)[ответить]


Ошибка в обработке сокращений[править код]

«тыс.» заменяется на «тыс.яч». Причём вообще работает он как-то странно: иногда заменяет, иногда нет. LoKi 14:08, 9 января 2006 (UTC)[ответить]

Поправил. --CodeMonk 21:24, 9 января 2006 (UTC)[ответить]

Ошибка с градусами[править код]

Викификатор превращает, например, такой текст:

Питер, 2002. С. 89.

В:

Питер, 2002. °C. 89. (Участник:Even)

Исправлено. Maxim Razin 09:51, 17 января 2006 (UTC)[ответить]

Справка по Викификатору устарела?[править код]

CodeMonk, ты внёс в Викификатор кучу всяких нововведений. Не мог бы ты дополнить справочный раздел, посвящённый Викификатору? А то сейчас Викификатор делает кучу замен, о которых ничего не сказано в справке. Например, раскрывает т.к., в т.ч., т.е.. И, возможно, делает ещё что-то. --Ctac (Стас Козловский) 09:24, 18 января 2006 (UTC)[ответить]

Я всё задокументировал. См. изменения здесь. --CodeMonk 20:36, 18 января 2006 (UTC)[ответить]
Сорри, не заметил. Может про расшифровку сокращений там сделать отдельный раздел, а то в разделе про пропущенные пробелы - это не сразу заметно?--Ctac (Стас Козловский) 20:46, 18 января 2006 (UTC)[ответить]
Хорошо, я сейчас сделаю. --CodeMonk 22:07, 18 января 2006 (UTC)[ответить]

Обрабатывать ли дроби?[править код]

Стоит ли делать замену 1/2, 2/3, 1/8, 3/8 и 7/8 на ⅓, ⅔, ⅛, ⅜, ⅝, ⅞? То есть превращать ли 3 символа в один. Понятно, что внутри <math></math> ничего трогаться не будет. Недостаток такого подхода, что заменять одним символом можно будет лишь только эти дроби. --Ctac (Стас Козловский) 09:39, 18 января 2006 (UTC)[ответить]

Лично у меня они нечитаемо выглядят. Думаю что я не один такой. Да и дробей таких немного, мы чаще всего используем десятичные. MaxiMaxiMax 09:57, 18 января 2006 (UTC)[ответить]
Согласен. С такими дробями вообще ничего не видно. Не будем такую гадость добавлять. --Ctac (Стас Козловский) 21:12, 18 января 2006 (UTC)[ответить]

Квадрат и куб числа одним символом[править код]

Можно сделать замену 4<sup>2</sup> и 5<sup>3</sup>, а также 4^2 и 5^3 на 4² и 5³. То есть использовать специальные символы для квадрата и куба. --Ctac (Стас Козловский) 09:33, 18 января 2006 (UTC)[ответить]

Двумя руками за! MaxiMaxiMax 09:57, 18 января 2006 (UTC)[ответить]
И ещё заменять строки вида 4&sup2; тоже на 4². MaxiMaxiMax 09:58, 18 января 2006 (UTC)[ответить]
Готово.--Ctac (Стас Козловский) 18:04, 18 января 2006 (UTC)[ответить]

Викификатор для викицитатника[править код]

Как разместить викификатор в викицитатнике? Kneiphof 13:41, 14 января 2006 (UTC)[ответить]

Администратор должен скопировать в цитатник страницу MediaWiki:Summary --ajvol 14:46, 14 января 2006 (UTC)[ответить]

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

В общем-то, глупость здесь написана. Дефис между двумя числами ставится лишь при написании номеров телефонов (отделение по две цифры справа налево) или каких-либо технических номеров и кодов. В том случае, когда речь идёт не об интервале, а о приближённом значении, дефис ставится лишь в словесной форме (три-четыре года); но между числами в любом случае ставится тире: где-то 3—4 года. Минус же вообще как знак отношения должен отделяться от чисел пробелами: 3 − 4 = −1.

Кстати дефис, с каждой стороны которого стоит по четыре цифры или окружённый римскими цифрами, викификатор на тире также не изменяет, как должен бы, если верить тексту этого раздела.

Надеюсь, исправлений в программе и в описании не придётся ждать долго. —Solon 13:04, 7 декабря 2005 (UTC)[ответить]

По возможности постараюсь сегодня вечером исправить. —ajvol 14:18, 7 декабря 2005 (UTC)[ответить]
Викификатор не работает при замене дефисов диапазонов диапазонах дат, являющихся внутренними ссылками (то есть при [[1998]]-[[1999]]) —Winterheart 11:18, 8 декабря 2005 (UTC)[ответить]
Поправил. —CodeMonk 21:24, 9 января 2006 (UTC)[ответить]

Есть случай неправильного перевода минуса в дефис. В статье Су-27 в шаблоне {{Commons|Sukhoi Su-27}} после применения викификатора ссылка ведет в «никуда». —Winterheart 19:27, 7 декабря 2005 (UTC)[ответить]

Поправил. —CodeMonk 21:24, 9 января 2006 (UTC)[ответить]


Приблизительно равно[править код]

Может сделать замену ~= на ≈? А то для того, чтобы вставить знак ≈ приходится рыться в таблице символов —Ctac (Стас Козловский) 09:18, 18 января 2006 (UTC)[ответить]

Да, но в перспективе нам, наверное, стоит расширить набор символов «на кнопках». Или ввести дополнительную панель, как в английском разделе. —CodeMonk 20:36, 18 января 2006 (UTC)[ответить]
Лучше как во французской. —ajvol 22:29, 18 января 2006 (UTC)[ответить]

Музыкальные файлы[править код]

Надо сделать так, что бы викификатор не затрагивал текст в середине шаблона аудио, где расположена ссылка на звуковой файл (что бы викификатор не делал из дефиса тире). Например десь {{Audio|Handel - messiah - 03 ev'ry valley.ogg|Фрагмент оратории «Мессия»}} преобразование дефиса в тире испортит ссылку на музыкальный файл. Kneiphof 22:48, 1 января 2006 (UTC)[ответить]

И чтобы вообще шаблоны не трогал! См. выше. —Winterheart 09:34, 4 января 2006 (UTC)[ответить]
Не слишком ли круто? —CodeMonk 21:24, 9 января 2006 (UTC)[ответить]
Ладно, пока уберём, потом посмотрим. —CodeMonk 02:17, 10 января 2006 (UTC)[ответить]


Скобки и пробелы[править код]

Можно сделать, чтобы убивались пробелы после открывающей круглой скобкой и перед закрывающей. То есть «бегемот ( гиппопотам )» превращать в «бегемот (гиппопотам)». Какие тут могут быть исключения?—Ctac (Стас Козловский) 20:56, 18 января 2006 (UTC)[ответить]

Так как возражений не последовало, то я добавил в Викификатор такую фичу. —Ctac (Стас Козловский) 11:47, 20 января 2006 (UTC)[ответить]

Предлагаю запретить Викификатору лезть в оформительские настройки. Дело в том, что он, например, отбивает пробелом знак процента, что приводит к плачевным результатам в случае инструкции вида width="50%". Это возможно исправить? LoKi 18:56, 13 марта 2006 (UTC)[ответить]

Так он туда и не лезет. --CodeMonk 20:08, 25 апреля 2006 (UTC)[ответить]

Люди! Не викифицируйте никогда эту страницу целиком!!!=[править код]

Теперь все примеры тут потеряли свой смысл, ибо обе части примеров (как было и как должно стать) теперь одинаковы :( --Unwrecker 17:11, 14 февраля 2006 (UTC)[ответить]

Опять то же самое.--AlefZet 08:45, 26 мая 2006 (UTC)[ответить]

Кстати, о ГОСТах. А там действительно ставится тире, а не дефис? Как правильно: ГОСТ 8.417—2002 или ГОСТ 8.417-2002 ? --Ctac (Стас Козловский) 21:55, 15 февраля 2006 (UTC)[ответить]

Действтиельно ставится тире. Во всяком случае, в самих ГОСТах, что есть у меня дома, в названии перед годом стоит тире. --Solon 17:42, 16 февраля 2006 (UTC)[ответить]

Bug в обработке ссылок[править код]

Вот такие ссылки викификатор портит: http://ru.wikipedia.org/w/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B2%D0%BE%D0%B4%D0%BE%D0%BA&diff=701913&oldid=697613

Если у кого-нибудь есть возможность, отключите добавление пробела перед знаком процента. Из того, что мне встретилось сегодня, уже в двух местах ссылки такого вида испорчены викификатором: http://www.pagez.ru/olib/index.php?id=search&q=%F2%EE%EB%EA%EE%E2%E0%ED%E8%E5+%C5%E2%E0%ED%E3%E5%EB%E8%E5

См. например [2]Decemberster 13:46, 20 января 2006 (UTC)[ответить]

Внесено уточнение, хотя принцип из ГОСТа остался. Думаю, мы должны следовать ГОСТу, пока сообщество в широкой дискуссии не пришло к обратному мнению. —CodeMonk 22:33, 20 января 2006 (UTC)[ответить]
Спасибо за fixed bug. А по-поводу ГОСТа — По-моему, мы должны следовать не ГОСТу (применимость которого в финансах и статистике по крайне мере спорна), а фактическому стандарту и полиграфическим традициям, ну да я об этом говорил уже много раз. —Decemberster 04:26, 21 января 2006 (UTC)[ответить]

Унести в отдельный файл[править код]

Mediawiki:Summary уже занимает больше 20 килобайт, и их приходится таскать при каждом редактировании. Хорошо бы перенести викификатор в отдельный файл где-то на upload.wikimedia.org. Maxim Razin 08:20, 24 января 2006 (UTC)[ответить]

Викификатор надо оставить. Дело в том, что в случае, если в нём вдруг выявится какая-нибудь критическая ошибка, то всегда можно быстро его поправить и изменения будут сразу у всех. Если же Викификатор будет в отдельном файле, то изменения (из-за кэширования браузером) будут происходить очень медленно, а у некоторых они могут вообще не произойти. Лучше в отдельный файл перенести все кнопки. А код викификатора ещё можно сократить ещё где-то на 20%, уменьшив длину имён переменных и убрав разделители "\\=========".--Ctac (Стас Козловский) 09:46, 24 января 2006 (UTC)[ответить]
Исправление ошибок и желание кешировать (чтоб не скачивать каждый раз) -- два противоречащих требования. Думаю, Викификатор нужно перенести в файл MediaWiki:wikifikator.js, а в Mediawiki:monobook.js включать его строкой:
if(document.title.indexOf("Editing ") == 0) {
   document.write('<script type="text/javascript" src="' 
              + 'http://ru.wikipedia.org/w/index.php?title=MediaWiki:Wikifikator.js' 
              + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}
--ajvol 11:38, 24 января 2006 (UTC)[ответить]

Панель инструментов и спецсимволы[править код]

  • Реально ли добавить кнопку "Предварительный просмотр" наверх, в панель инструментов, там где есть кнопки < b >, < i > и т.д., т.к. внизу она неудобна?
  • Для ссылки, например, в строке "Спецсимволы (эксперементально):..." - «нет меню» есть всплывающая подсказка. Почему для всех остальных символов в этой строке их (подсказок) нет? Я например не знаю что обозначает тэг “_ _NOTOC_ _“ или #.
  • Я заметил, что набор спецсимволов на панелях в течении моего короткого периода работы с Википедией менялся несколько раз и даже сегодня. Существует ли статистика какие символы наиболее часто используются? Возможно ли установка на эту панель только наиболее часто используемых символов?

OldTV 05:40, 25 января 2006 (UTC)[ответить]

Кнопку «Предпросмотр» мы не будем переносить, т. к. она расположена внизу не только в русскоязычном разделе, но и о всех других. А вообще сейчас эта панель подвергается большим переработкам (в частности, у меня ещё есть некоторые планы на неё), надеюсь к началу следующей недели будет какой-то более-менее устоявшийся вариант. --ajvol 08:28, 25 января 2006 (UTC)[ответить]
А может, как предложение, не стоит переносить кнопку, а стоит добавить, т.е. продублировать. Кому удобно будут пользоваться старым вариантом, а кому удобно, новым. oldTV 07:24, 26 января 2006 (UTC)[ответить]
Это тоже не так просто. По крайней мере я не знаю как это сделать. Вне Википедии, на собственном сервере — проблем нет. --ajvol 08:35, 26 января 2006 (UTC)[ответить]
Расположение кнопок "Записать страницу" и "Предварительный просмотр" на стандартных местах очень помогает тем, кто не знает русского языка и залез например проставить интервики. Так что лучше не двигать наверное. Maksim-e 09:43, 25 марта 2006 (UTC)[ответить]

Некорректная обработка кавычек внутри заголовка третьего уровня[править код]

Из текста

=== "Текст" ===

Получается

== = "Текст" ==
Спасибо! Исправил.--Ctac (Стас Козловский) 20:48, 14 февраля 2006 (UTC)[ответить]

Сокращения: млн и млрд[править код]

Прошу отключить автоматическую постановку точки после указанных сокращений.
По уточнённым данным: 2-е издание «Русского орфографического словаря РАН» под ред. В. В. Лопатина (М., 2005. С. 928.), ISBN 5-88744-052-X, — слова миллион и миллиард нормативно сокращаются как млн и млрд, то есть без точки. --Solon 16:43, 14 февраля 2006 (UTC)[ответить]

100%. Необходимо поправить в обязательном порядке. VanHelsing.16 17:12, 14 февраля 2006 (UTC)[ответить]
Я бы добавил: вместо тыс. писать тсч. — ТЖА.
«Млн» и «млрд» поправил. Про «тсч» никогда не слышал. --CodeMonk 21:09, 18 февраля 2006 (UTC)[ответить]
Я тоже. По-моему, всегда было «тыс.». — doublep 11:41, 19 февраля 2006 (UTC)[ответить]
  • Я выбросил гласные на манер м/б/тр/кврлн. — ТЖА.

Ещё глюк[править код]

--valodzka 23:04, 8 мая 2006 (UTC)

Поправил. --CodeMonk 19:24, 9 мая 2006 (UTC)[ответить]


Викификатор - как проект с открытым исходным кодом?[править код]

По моему мнению, было бы здорово открыть опенсорсный проект для Викификатора. Или по крайней мере завести страничку на meta.wikimedia.org, которая бы описывала как интегрировать Викификатор в MediaWiki.

Нужно. А предварительно его самого нужно полностью переделать, изменить механизм его подключения. Всё времени нет :( --ajvol 08:39, 24 мая 2006 (UTC)[ответить]
Ну, не могу сказать, что полностью всё переделал, но то, что основательно - это однозначно. Перевёл интерфейс и комменты на английский, добавил пару функций (из за чего количество кода сильно снизилось), немного поменял местами порядок вызова... Из недостатков можно отметить нереализованную пока типографику (Ну не знаю я правил Английской типографики!) и недостаточную интеграцию с МедиаВики (пока никаких кнопок и проверок браузера: только функция Process("your_text_here"); ). Бету я разместил на Мете.
ЗЫЖ Я слышал, что всё, что опубликовано в Википедии находится под вариантом лицензии GPL. Значит ли это что и Викификатор находится под её действием. Иными словами, что я могу делать с этим кодом?--Shtriter 00:38, 1 июня 2006 (UTC)[ответить]
Собственно для типографики он и разрабатывался изначально. Но в англ. вике, насколько я понял, не принято использовать что-то сложнее ASCII, например кавычки везде обычные. А вот в немецкой версии вроде типокрафика принята, но как они её проставляют я не понял (вставкой спецсимволов?). Если удасться как-то придумать как можно использовать разную типографику для разных языков, то можно было бы сделать Викификатор как extention к движку, и подключить сразу ко всем вики-проектам. Что касается прав, то формально код идёт по лицензии GNU FDL, которая не очень подходит для такого скрипта. Наверное лучше попросить всех, кто писал этот Викификатор ранее разрешить сделать его общественным достоянием (public domain), чтоб не было проблем с дальнейшим распространением. --ajvol 05:07, 1 июня 2006 (UTC)[ответить]

Подключение викификатора в обсуждениях[править код]

При добавлении раздела в обсуждение нажатием на «+» (не в форуме, где это сделано как внешняя ссылка, а в обычных обсуждениях, что делает движок, например, здесь) не отображается нижняя панель кнопок (с викификатором, тире, категорией, редиректом и прочим). --AndyVolykhov 10:12, 24 мая 2006 (UTC)

Это связано с тем, что код Викификатора на данный момент хранится в базе как Mediawiki:Summary — то есть русский перевод строки описания (В нашем случае — «Краткое описание:»). При нажатии + описание просто не грузится.

Градусы[править код]

Надо бы употреблять нормальные градусы температуры, т.е.

  • ℃ U+2103 : DEGREE CELSIUS
  • ℉ U+2109 : DEGREE FAHRENHEIT

вместо двухсимвольных недоградусов °C & °F. А этот градус

  • ° U+00B0 : DEGREE SIGN

оставить токмо для градусов геокоординат, углов и прочих нефизических величин.--AlefZet 07:48, 26 мая 2006 (UTC)[ответить]

Сейчас всё правильно. Обозначения единиц температуры по стандарту состоят из двух следующих точно друг за другом символов: специального знака градуса в виде поднятой над строкой окружности и обозначения шкалы в виде латинской буквы C для градусов Цельсия и F — для градусов Френгейта. Указанные комбинированные символы предназначены для использования в языках с иероглифическим письмом и в русских текстах использоваться не должны. — solon 12:03, 27 мая 2006 (UTC)[ответить]
DEGREE CELSIUS и DEGREE FAHRENHEIT относятся к Letterlike symbols и, стало быть, к иероглифике никакого отношения не имеют. Лигатура может заменять диграфы без проблем. Видимо, Вы спутали с CJK Compatibility. Там символы называются не по названию еденицы измерения, а SQUARE и по составляющим знака, типа pF зовётся U+338A : SQUARE PF и так далее. И в спецификации Юникода ничего об иероглифическом использовании нет.--AlefZet 12:43, 27 мая 2006 (UTC)[ответить]
Эта идея уже высказывалась. Но °C и °F выглядят лучше, чем ℃ и ℉ в большинстве доступных шрифтов. А ℃ и ℉ действительно созданы для иероглифического письма, посмотрите аннотацию этих символов в таблице Letterlike symbols. --CodeMonk 17:08, 27 мая 2006 (UTC)[ответить]

Римские цифры[править код]

В Юникоде есть диапазон U+2160 — U+2183 специально для римских цифр: Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ Ⅿ ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ ⅼ ⅽ ⅾ ⅿ ↀ ↁ ↂ Ↄ. Почему бы не не переводить сочетания двух-трех букв в одиночные символы?--AlefZet 08:43, 26 мая 2006 (UTC)[ответить]

В текстах статей не нужно их использовать, даже в тех шрифтах где они есть они выглядят плохо, да и с поиском будут проблемы. В оформительских целях использовать можно, хотя тоже смысла немного. MaxiMaxiMax 12:12, 27 мая 2006 (UTC)[ответить]
Ваши возражения по поводу поиска имеют резон. По поводу шрифтов не соглашусь — в Arial Unicode MS вполне прилично выглядят: Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ.
То же самое, что и с градусами. Для обычных целей при обозначении чисел в римской записи используются 7 знаков, представляющих собой заглавные буквы латинского алфавита: I, V, X, L, C, D и M. — solon 12:18, 27 мая 2006 (UTC)[ответить]
Если Вы намекаете на использование в иероглифике, то ошибаетесь. Number form включают fractions и roman numerals. Это просто лигатуры или presentation forms. Используются в алфавитном письме.

При оформлении текстов в Википедии мы ориентируемся на традиционную русскую типографию. А там не было принято использовать цельные литеры для Ⅷ или ℃. — Monedula 07:42, 1 июня 2006 (UTC)[ответить]

Работает ли Викификатор?[править код]

При нажатии на кнопку «Викификатор» более никаких изменений в тексте не происходит. — solon 12:00, 27 мая 2006 (UTC)[ответить]

Изменился механизм подключения викификатора. Нужно обновить закэшированные JavaScript-файлы, нажав ctrl+F5 или shift+F5 (в зависимости от браузера, или попробовать нажать учерживаю ctrl или shift кнопку "обновить") --ajvol 12:27, 27 мая 2006 (UTC)[ответить]
Да, теперь всё работает. Спасибо. — solon 12:44, 27 мая 2006 (UTC)[ответить]

Новые автозамены[править код]

Какие из этих автозамен стоило бы добавить в Викификатор?

  • !! на ‼
  • /= на ≠
  • :: на ∷
  • <- и -> на ← и →
  • << и >> на ≪ и ≫
  • <= и >= на ≤ и ≥

--Ctac (Стас Козловский) 10:19, 19 июля 2006 (UTC)[ответить]

Ну третий пункт точно не нужно, поскольку некоторые пользуются викификатором в обсуждении, а один раз нажмёшь — и вся разметка полетит. Первый и второй, мне кажется, можно добавить. А где используются обозначения 3—6? Я с такими не сталкивался. LoKi 10:26, 19 июля 2006 (UTC)[ответить]
Это список автозамен из Ворда 2007. Решил их выписать на случай вдруг и нам они сгодятся. Двойной восклицательный знак используется в шахматной нотации (метка удачного и неожиданного хода) и в математической нотации (двойной факториал). Правда, не знаю где его принято обозначать одним символом. Символ ≠ - "не равно". Символ ∷ - не знаю где используется. :( Стрелки (← и →) - используют в химии и логике. ≪ и ≫ - это, по-моему, "много меньше" и "много больше". ≤ и ≥ - это школьные "меньше или равно" и "больше или равно".Ctac (Стас Козловский) 10:56, 19 июля 2006 (UTC)[ответить]
Хе. Некоторые не распознал. ;) На самом деле, они не выглядят такими уж нужными: математические вставляются в теховской разметке, например. LoKi 11:22, 19 июля 2006 (UTC)[ответить]
Думаю никакие не нужно. Восклицательные знаки обычно встречаются по три, а не по два. Остальные знаки крайне редки и потенциально могут навредить (например в текстах исходных программ или алгоритмов) --ajvol 10:27, 19 июля 2006 (UTC)[ответить]
Я тоже думаю, что никакие не нужно. Кому надо, тот сам вставит нужный символ (для этого есть много удобных способов). А эти символы встречаются не так уж и часто. — Monedula 10:38, 19 июля 2006 (UTC)[ответить]
Не сочтите за консерватизм, но, на мой взгляд, эти редкие символы действительно не нужно викифицировать. Вполне достаточным будет добавить их в панель спецсимволов или куда-то в этом роде. MaxiMaxiMax 10:49, 19 июля 2006 (UTC)[ответить]

Викификатор буфера обмена?[править код]

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

Насколько я знаю — нет. --CodeMonk 19:18, 15 мая 2006 (UTC)[ответить]
Неплохую идею можно увидеть тут

Новая версия![править код]

Вышла новая версия. (Кстати, не пора ли договориться о нумерации?)

Список изменений:[править код]

  • Добавленна функция ProcessTables() - для обработки таблиц.

Помимо тэга <table> обрабатываются заголовок таблицы, строки и ячейки вместе с атрибутами.

  • Строки, начинающиеся с пробела исключаются последними (а восстанавливаются, соответственно первыми).

Именно так и ведёт себя MW - сначала обработаем тэги, а уж затем поместим их в <pre>. Причём в случае таблиц контейнер <pre> и вовсе не создаётся... Типографика, имхо, должна обрабатываться ПОСЛЕ пробельных строк. Посему я и поместил её прямо перед восстановлением елементов.

  • Изменено подключение панели Викификатора:
addOnloadHook(addWkikifPanel);
  • Изменена обработке конца строки (br):
	txt = txt.replace(/\<p><br ?\/?\>/gi, "\n\n");
	txt = txt.replace(/\<br ?\/?\>/gi, "<br/>");

В ближайшее время планируется:[править код]

  • оптимизировать код обработки таблиц, столбцов и ячеек - вместо 3 трёх замен, типа
	txt = txt.replace(/\<table ?\>/gim, "{|");
	txt = txt.replace(/\<table ?([^\/]+?) ?\>/gim, "{| $1");
	txt = txt.replace(/\<\/table.*\>/gim, "|}");
сделать одну, но более сложную. К примеру такую, как обработка заголовка таблицы:
	txt = txt.replace(/\<caption ?\>(.*)\<\/caption ?\>/gim, "|+ $1");
Правда, на данный момент она работает только, если тэги расположенны на 1 строке.
  • подключать локализованную типографику и сообщения из другого места Реализовано!
  • добавить обработку списков Реализовано!
  • отказаться от использования глобальной переменной txt Реализовано!
Само собой разумеется, что пожелания, предложения, доработки и улучшения приветствуются!

--Shtriter 14:40, 1 июля 2006 (UTC)[ответить]

Взгляните на мои скрипты Участник:AlefZet/onlyifediting.js, Участник:AlefZet/monobook.js и Участник:AlefZet/monobook.css. Они добавляют кнопки на тулбар и быстрые вставки в краткое описание --AlefZet 00:05, 3 июля 2006 (UTC)[ответить]
Инетересный в плане реализации скрипт. Однако мне он представляется страшной солянкой, которую сначала с грехом пополам с французского перевели на английский, а потом ещё частично попытались перевести на русский. Либо (как вариант) интересные функции просто взяли из разных источников. ИМХО, сначала нужно решить какие из этих функций должны быть в Викификаторе и нормально перевести всё на русский или английский...
Действительно, взято из разных источников: fr, bg, de, he, tr, pl. Франузские и английские комментарии я оставил как есть, тут всё понятно. Я не понимаю, что вы имеете в виду под «нормально перевести всё на русский или английский», что переводить? названия функций и переменных?! --AlefZet 19:57, 6 июля 2006 (UTC)[ответить]
Переводить - так перводить. Комментарии не должны быть на разных языках. Не все же знают франзузский. Названия функций и переменных - тоже. Причём именно на английский. Просто при таком подходе код будет более-менее понятен максимальному числу программистов...--Shtriter 22:34, 6 июля 2006 (UTC)[ответить]
PS. Т.к. я не администратор русской Википедии, я не могу включать дополнительные функции непосредственно в Викификатор. Вместо этого я изменяю его код на моей странице и на страничке Викификатора (на Мете). Поэтому под пожеланиями и предложениями я имел ввиду мнения по поводу надобности расширения Викификатора вышеописанными возможностями (или лучше завести отдельный проект, скажем, html2wiki...)

--Shtriter 18:54, 3 июля 2006 (UTC)[ответить]

Что тут не так? --AlefZet 19:57, 6 июля 2006 (UTC)[ответить]
Я не говорил, что здесь что-то не так. Я скорее говорил, а чего здесь не хватает. Чего не хватает мне - я подробно описал и потихоньку воплощаю. Почти без отзывов и тем более без дополнений со стороны других программистов. Хотелось бы как-нибудь расшевелить людей... --Shtriter 22:34, 6 июля 2006 (UTC)[ответить]
Тег <br> сейчас обрабатывается правильно, не надо это менять. Насчёт включения обработки таблиц — это имхо можно. Такие инструменты отдельно уже существуют, так что заводить ещё один подобный отдельный проект имхо смысла нет. --CodeMonk 01:35, 4 июля 2006 (UTC)[ответить]
Хорошо, <br> трогать пока не будем, хотя было бы неплохо сделать из 2 замен одну... А вот по поводу существующих инструментов хотелось бы узнать поподробнее. Я не смог найти ни одного html2wiki приложения (или библиотеки) на JavaScript. Видел на перле и на си. Ещё видел различные вариации на тему Word2Wiki. Но вот js-кода, реализующего данную задачу, не встречал. Буду премного благодарен за любую предоставленную информацию по данной теме! --Shtriter 04:35, 5 июля 2006 (UTC)[ответить]
Дело в том, что внутри тега <br /> могут быть атрибуты — вот зачем нужна вторая замена. Конвертеров на джаваскрипте я тоже не знаю — но они и не могут быть отдельными приложениями. --CodeMonk 20:23, 7 июля 2006 (UTC)[ответить]
Зато есть Джаваскриптовский обработчик типографики, принимающий текст из буфера обмена (поддерживается и формат MS Word) и чистящий полученный html. Сработан на студии Лебедева. Правда он Оперу не любит... Но |посмотреть стоит. 92 кБ в архиве с примерами и изображениями.

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

Преобразование списков[править код]

Поддерживается преобразование нумерованых, ненумерованых списков и списков определний (# * и ;:). Вложенность реализована для всех типов. Длина вложенности ограниченна разве что длиной строки (или широтой фантазии ;) Временные ограничения тестовой версии:

  1. Html-разметка должена быть MW-подобной, т.е. такой, какой её выдаёт парсер Mediawiki.
  2. Возможны некорректные преобразования вложенных списков определений (;; x :: y), т.к. даже на irc-форуме разработчиков есть несколько мнений о том, как они должны выглядеть (см. баг #6569)

Как всегда, код доступен здесь. Расчитываю на дополнения и улучшения (или просто интересных идей) со стороны заинтересовавшихся...--Shtriter 19:58, 6 июля 2006 (UTC)[ответить]

Перестали заменяться названия пространств имён[править код]

У нас приняты русские названия пространств имён и раньше Викификатор корректно заменял стандартные названия типа Image, Category на Изображение, Категория. Пожалуйста, восстановите эту функцию - это особенно важно для новичков, которые будут удивляться почему часть написана одним образом, а часть по-другому. MaxiMaxiMax 02:28, 29 июня 2006 (UTC)[ответить]

Поправил. --CodeMonk 00:28, 30 июня 2006 (UTC)[ответить]

Меню и Викификатор[править код]

Так как всё-таки вернуть Викификатор? Я создал страницу Участник:Paul Pogonyshev/standard.js, что не так? — doublep 11:33, 3 июля 2006 (UTC)[ответить]

Не работает викификатор? Или не отображается меню с викификатором? С. Л.!? 18:40, 3 июля 2006 (UTC)[ответить]
Нет меню. — doublep 19:52, 3 июля 2006 (UTC)[ответить]
Так можно как-нибудь пользоватся Викификаторам тем, у кого оформление не по умолчанию? — doublep 16:13, 5 июля 2006 (UTC)[ответить]
Как я уже писал, можно попробовать скопировать файл Wikificator.js в standard.js ... --Shtriter 07:16, 6 июля 2006 (UTC)[ответить]
Смысла нет, т. к. standard.js даже не появляется в коде страницы редактирования, как он есть сейчас. — doublep 09:17, 6 июля 2006 (UTC)[ответить]
Если я хоть что-нибудь понимаю, на 12 строке исходного кода выдаваемой страницы у Вас должно быть что-то вроде:
<script type="text/javascript" src="/w/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Paul Pogonyshev/standard.js&action=raw&ctype=text/javascript"></script>

Во всяком случае у меня - так (только вместо standard - monobook). Я точно знаю, что это работает, т.к. у меня из-за этого 2 панели с Викификатором.--Shtriter 20:22, 6 июля 2006 (UTC)[ответить]

Да, как ни удивительно, нижняя панель иструментов начисто исчезает при любом оформлении, отличном от принятого по умолчанию. Кстати, обнаружил в одном из видов оформления ("Цыпа") ещё один глюк: нет возможности перейти на любую страницу личных настроек, кроме исходной, т. к. ссылки попросту не активированы. Т. е. выбрав режим "Цыпа", уже невозможно запросто сменить его на другой режим. Я уж думал - окажусь теперь навеки в "Цыпе" ;), но сильно увеличив шрифт и обновив страницу, обнаружил, что ссылки на другие страницы стали доступны. Словом, нетрудно убедиться в неуважении разработчиков к поклонникам других вариантов оформления. - Павел, у Вас какой вариант оформления, если не секрет? С. Л.!? 20:46, 6 июля 2006 (UTC)[ответить]
Стандартный. Люблю шрифты с засечками. Кстати, вышеуказанный фрагмент кода действительно есть, но почему-то action=raw не работает :( — doublep 09:44, 8 июля 2006 (UTC)[ответить]

Викификатор v.3b[править код]

Представляю обновлённую версию Викификатора. Как и было обещано ранее, реализовано:

  • Дальнейшая оптимизация исходного кода, позволившая отказаться от глобальной переменной txt
  • подключение типографики и локализации из другого файла (В данном примере - отсюда)

Для подключения данного файла, нужно заменить существующий на MediaWiki:Wikificator.js код на:

document.write("<script type=\"text/javascript\"  src=\"http://meta.wikimedia.org/wiki/Wikifikator/Wikifikator.js\"></script>\n");
addOnloadHook(addWkikifPanel);

var wmFullText = 'Викификатор обработает ВЕСЬ текст статьи. Продолжить?';
var wmCantWork = 'Викификатор не работает в Вашем браузере';
var wmWontWork = 'Викификатор не может работать в браузерах Netscape версий 4.x и ниже';


var wmCategoryNS = 'Категория';
var wmTemplateNS = 'Шаблон';
var wmUserNS = 'Участник';
var wmImageNS = 'Изображение';
var wmMediaNS = 'Медиа';

/*
//Может лучше использовать существующие функции Mediawiki:
ta['wclWikificator'] = new Array('w','Произвести обработку текста Викификатором'); 
//?
*/
if (window.event){
  document.onkeypress = pressed;
}

function pressed() //On Ctrl+Enter (MSIE)
{key = window.event.keyCode;if (key==10){Wikify();}}

var t = new Array();
t['wikify'] = new Array("{"+"{wikify", "", "}}");
t['stub'] = new Array("{"+"{stub", "", "}}");
t['delete'] = new Array("{"+"{Db|", "причина", "}}");
t['vfd'] = new Array("{"+"{vfd", "", "}}");
t['bio-info'] = new Array("{"+"{Персона|\n  ФИО= \n| портрет= dot.png\n| описание= \n| ФИО-оригинал= \n| дата рождения=[[]] [[]] \n| место рождения=[[]], [[]] \n| дата смерти=[[]] [[]] \n| место смерти=[[]], [[]]\n", "", "}}");
t['film-info'] = new Array("{"+"{Фильм"+
"\n| RusTitle   = "+
"\n| OrigTitle  = "+
"\n| Image      = [[Изображение:|200px]]"+
"\n| Genre      = [[]]"+
"\n| Dir        = [[|]]"+
"\n| Producer   = [[|]]"+
"\n| Script     = [[|]]"+
"\n| Actors     = [[|]]<br />[[|]]<br />[[|]]<br />[[|]]"+
"\n| Music      = [[|]]"+
"\n| Cameraman  = [[|]]"+
"\n| Prod       = [[]]"+
"\n| Budget     = 000 млн. $"+
"\n| Country    = [[]]"+
"\n| Time       = 00 мин."+
"\n| Year       = [[0000]]"+
"\n| imdb_id    = 0000000"+
"\n", "", "}}");

/***************************************************
	Typographical considerations
***************************************************/
function ProcessTypography( t ) {

// Insert spaces in titles
t = t.replace(/^(=+)([ \t\f\v]*)(.*?)([ \t\f\v]*)(=+)$/gm, "$1 $3 $1")
//======================================
// Use 1 character to display square and cube
t = t.replace(/(<sup>2<\/sup>|²)/g, "²");
t = t.replace(/(<sup>3<\/sup>|³)/g, "³");
t = t.replace(/(\^2)(\D)/g, "²$2");
t = t.replace(/(\^3)(\D)/g, "³$2");
//======================================
// Correct year ranges
t = t.replace(/(\(|\s)(\[?\[?[12]?\d{3}\]?\]?)[\u00A0 ]?(-|--|–|—) ?(\[?\[?[12]?\d{3}\]?\]?)(\W)/g, "$1$2—$4$5")
t = t.replace(/(\[?\[?[12]?\d{3}\]?\]?) ?(г\.|гг\.)/g, "$1\u00A0$2")
// Correct century ranges
t = t.replace(/(\(|\s)(\[?\[?[IVX]{1,5}\]?\]?)[\u00A0 ]?(-|--|–|—) ?(\[?\[?[IVX]{1,5}\]?\]?)(\W)/g, "$1$2—$4$5")
t = t.replace(/(\[?\[?[IVX]{1,5}\]?\]?) ?(в\.|вв\.)/g, "$1\u00A0$2")
//======================================
// Replace right HTML symbols with wrong ones in order to process everithing
t = t.replace(/–/g, "-")
t = t.replace(/(«|»|“|”|„|\&((la|ra|bd|ld)quo|#132|#147|#148|quot);)/g, "\"")
//======================================
// Replace double hyphen with a dash
t = t.replace(/(--)(\[\[Участник|\~\~\~)/g, "—$2")
//======================================
// Replace set of 'less then' or 'greater then' symbols (<< or >>) with usual double quotes
t = t.replace(/(<<)(\S.+\S)(>>)/g, "\"$2\"")
//======================================
// Process degree sign "°", "+-" and "~="
t = t.replace(/(\+[--])|(±)/g, "±")
t = t.replace(/(~=)/g, "≈")
t = t.replace(/\°/g, "°")
t = t.replace(/([ =≈≠≤≥<>("'|]|^)([+±−\-]?\d+?(?:[.,]\d+?)?)(([ °^*]| [°^*])[CС])(?=[ "').,;!?|]|$)/gm, "$1$2\u00A0°C")
t = t.replace(/([ =≈≠≤≥<>("'|]|^)([+±−\-]?\d+?(?:[.,]\d+?)?)(([ °^*]| [°^*])F)(?=[ "').,;|!?]|$)/gm, "$1$2\u00A0°F")
//======================================
// Replace "...", "…" and "&#133;" with ellipsis
t = t.replace(/(\.{3}|\&(hellip|#133);)/g, '…')
// Apostrophe handler
t = t.replace(/([\wа-яА-ЯёЁ])'([\wа-яА-ЯёЁ])/g, "$1’$2")
// Minus handler
t = t.replace(/(sup\>|sub\>|\s)-(\d)/g, "$1−$2")
//======================================
// Replace hyphens and en dashes with normal dashes
t = t.replace(/\&(#151|[nm]dash);/g, "—")
t = t.replace(/( |[\f\n\r\t\v\u00A0\u2028\u2029])(-|--|–) /g, "$1— ")
t = t.replace(/(\d)--(\d)/g, "$1—$2")
// Insert non-braiking space before dashes
t = t.replace(/(\S) (-|--|–|—) (\S)/g, "$1\u00A0— $3")
//======================================
// Special characters: ©, ®, ™, §, €, ¥ и £.
t = t.replace(/\©/gi, "©")
t = t.replace(/(\(r\)|\®)/gi, "®")
t = t.replace(/(\((tm|тм)\)|\™)/gi, "™")
t = t.replace(/(\(p\)|\§)/gi, "§")
t = t.replace (/\€/gi, "€")
t = t.replace (/\¥/gi, "¥")
t = t.replace (/\£/gi, "£")
//======================================
// Correct the reductions
t = t.replace(/(Т|т)\. ?е\./g, "$1о есть")
t = t.replace(/(Т|т)\. ?к\./g, "$1ак как")
t = t.replace(/(В|в) т\. ?ч\./g, "$1 том числе")
t = t.replace(/и т\. ?д\./g, "и\u00A0т\.\u00A0д\.")
t = t.replace(/и т\. ?п\./g, "и\u00A0т\.\u00A0п\.")
t = t.replace(/(Т|т)\. ?н\./g, "$1\.\u00A0н\.")
t = t.replace(/н\. ?э\./g, "н\.\u00A0э\.")
t = t.replace(/(Д|д)(о|\.) н\. ?э\./g, "$1о\u00A0н\.\u00A0э\.")
t = t.replace(/(\d) (тыс)([^\.А-Яа-яЁё])/g, "$1\u00A0$2.$3")
t = t.replace(/(\d) (млн|млрд|трлн)([^А-Яа-яЁё])/g, "$1\u00A0$2$3")
// Insert missing and delete unnecessary spaces
t = t.replace(/([А-Я]\.) ?([А-Я]\.) ?([А-Я][а-я])/g, "$1\u00A0$2\u00A0$3")
t = t.replace(/([А-Я]\.)([А-Я]\.)/g, "$1 $2")
t = t.replace(/^([#\*:]+)([ \t\f\v]*)([^ \t\f\v\*#:])/gm, "$1 $3")
t = t.replace(/([а-я])(\.)([А-ЯA-Z])/g, "$1$2 $3")
t = t.replace(/([а-яa-z\)\»\“\"\]])(\s*)(\,)([а-яa-z\(\«\„\"\[])/g, "$1$3 $4")
t = t.replace(/([а-яa-z\)\»\“\"\]])(\s)([\,\;])(\s)([а-яa-z\(\«\„\"\[])/g, "$1$3 $5")
t = t.replace(/([^%\/\w]\d+?(?:[.,]\d+?)?) ?([%‰])(?!-[А-Яа-яЁё])/g, "$1\u00A0$2")
t = t.replace(/(\d) ([%‰])(?=-[А-Яа-яЁё])/g, "$1$2")
t = t.replace(/([№§])(\s*)(\d)/g, "$1\u00A0$3")
t = t.replace(/(^|[^ \t])([ \t]+)($|\n)/gm, "$1$3")
t = t.replace(/(\()( +)/g, "$1");
t = t.replace(/( +)(\))/g, "$2");
//======================================
// Avoid double spaces
t = t.substr (1);
t = t.replace(/(\S)([ \t]{2,})([\S\r])/g, "$1 $3")
t = " " + t
//======================================
// Replace double quotes ("")  with double angle quotes («»)
t = t.replace(/([\x01-(\s\|\"]|\/|\+)(\")([^\"]{0,})([^\s\"(])(\")/g, "$1«\$3\$4»")
// Quotations in quotes
if (/"/.test(t))
{
  t = t.replace(/([\x01(\s\"])(\")([^\"]{0,})([^\s\"(])(\")/g, "\$1«\$3\$4»")
  while (/(«)([^»]*)(«)/.test(t))
    t = t.replace(/(«)([^»]*)(«)([^»]*)(»)/g, "\$1\$2„\$4“")
}

return t;
}


 function addWkikifPanel() {
   var wf='<tt><a href="/wiki/Википедия:Специальные_символы" target="_blank">Спецсимволы</a>:<span id="my-buttons"><small><A href="javascript:insertTags(\'́\',\'\',\'\');" style="text-decoration: none;color:#000" title="Ударение">\'</a> <A href="javascript:insertTags(\'α\',\'\',\'\');" style="text-decoration: none;color:#000" title="Альфа">α</a> <A href="javascript:insertTags(\'β\',\'\',\'\');" style="text-decoration: none;color:#000" title="Бета">β</a> <A href="javascript:insertTags(\'γ\',\'\',\'\');" style="text-decoration: none;color:#000" title="Гамма">γ</a> <A href="javascript:insertTags(\'δ\',\'\',\'\');" style="text-decoration: none;color:#000" title="Дельта">δ</a> <A href="javascript:insertTags(\'—\',\'\',\'\');" style="text-decoration: none;color:#000" title="Тире">—</a> <A href="javascript:insertTags(\'\«\',\'\»\',\'\');" style="text-decoration: none;color:#000" title="Выделите текст и щёлкните, чтобы поставить кавычки-ёлочки">«»</a> <A href="javascript:insertTags(\'…\',\'\',\'\');" style="text-decoration: none;color:#000" title="Многоточие">…</a> <A href="javascript:insertTags(\'°\',\'\',\'\');" style="text-decoration: none;color:#000" title="Знак градуса">°</a> <A href="javascript:insertTags(\'€\',\'\',\'\');" style="text-decoration: none;color:#000" title="Знак евро">€</a> <A href="javascript:insertTags(\'\&nbsp\;\',\'\',\'\');" style="text-decoration: none;color:#000" title="Неразрывный пробел">&nbsp;</a> <A href="javascript:insertTags(\'\<sub\>\',\'\<\/sub\>\',\'Подстрочный текст\');" style="text-decoration: none;color:#000" title="Выделите текст и щёлкните, чтобы перевести его в подстрочный">X<sub>2</sub></a> <A href="javascript:insertTags(\'\<sup\>\',\'\<\/sup\>\',\'Надстрочный текст\');" style="text-decoration: none;color:#000" title="Выделите текст и щёлкните, чтобы перевести его в надстрочный">X<sup>2</sup></a> <A href="javascript:insertTags(\'\[\[Категория\:\',\'\]\]\',\'\');" style="text-decoration: none;color:#000" title="Категория">Категория</a> <A href="javascript:insertTags(\'\[\[\|\',\'\]\]\',\'\');" style="text-decoration: none;color:#000" title="Ссылка с описанием">[[|]]</a> <A href="javascript:insertTags(\'{{\',\'}}\',\'Шаблон\');" style="text-decoration: none;color:#000" title="Шаблон">{{}}</a> <A href="javascript:insertTags(\'#REDIRECT \[\[\',\'\]\]\',\'Ссылка\');" style="text-decoration: none;color:#000" title="Перенаправление">→</a> </small> <a href="javascript:Wikify();" style="text-decoration: none;color:#000" title="Викифицировать!" accesskey="w">Викификатор</a></span>[<a href="/wiki/Википедия:Викификатор" target="_blank" title="Справка по Викификатору">?</a>]</tt>';

   var d = document;
   if (d.getElementById('wpSummaryLabel')) {
     var wps = d.getElementById('wpSummaryLabel').getElementsByTagName('span')[0];
     if (wps) {
       wps.innerHTML=wf+wps.innerHTML;
     } 
   } 

    oldSel = document.getElementById('specialchars');
    if (oldSel) oldSel.innerHTML = '';
 }

// Вставляет стаб, выбранный из списка
function insertStub(obj) {
  var id = obj.options[obj.selectedIndex].value; 
  if (id != '0') insertTags(t[id][0], t[id][2], t[id][1]); 
  obj.selectedIndex=0;
}

Остаётся добавить обработку параграфов, изображений, доловить насекомых (см. пред. секцию) и можно будет выпускать Викификатор v.3.

Дефис в названиях файлов[править код]

Нужно поправить, чтобы дефис автоматически не заменялся на тире в именах файлов изображения, например Mauro Giuliani (1781-1829).gif, а то при каждом нажатии кнопки "Викификатор" ссылка на картинку в статье Джулиани, Мауро будет рушиться. --Volkov 20:54, 22 июля 2006 (UTC)[ответить]

Верное замечание, но временно можно сделать редирект. --Jaroslavleff?! 20:56, 22 июля 2006 (UTC)[ответить]
На что редирект? Картинка на commons, а если викификатор рушит ее оригинальное название, то что редиректить? --Volkov 21:11, 22 июля 2006 (UTC)[ответить]
А. Ну напиши CodeMonk'у или кто там у нас пишет код викификатора. --Jaroslavleff?! 21:47, 22 июля 2006 (UTC)[ответить]
Дык я не знаю, кто пишет, поэтому и написал сюда. --Volkov 21:53, 22 июля 2006 (UTC)[ответить]
Да, я видел, я уже это поправил. --CodeMonk 22:33, 22 июля 2006 (UTC)[ответить]

« и » в HTML[править код]

А зачем « "уши" » заменены на « ёлочки » внутри тегов в ст. Китайский календарь (WIDTH="20%« VALIGN=»TOP" HEIGHT="32" align="center") ? (Несмотря на то, что там все эти выравнивания вообще не нужны, зачем?) ManN 15:17, 3 июля 2006 (UTC)[ответить]

Это Викификатор так сработал, сейчас поправлю --Butko 15:22, 3 июля 2006 (UTC)[ответить]
Вроде бы, поправил. Посмотрите, не испортил ли случайно при этом --Butko 15:32, 3 июля 2006 (UTC)[ответить]
Да, поправилось. Я, правда, довикифицировал это совсем вручную (sed'ом), так что, кажется, совсем хорошо стало. Остальное добью потом как-нибудь. -- ManN 06:41, 4 июля 2006 (UTC)[ответить]

Кавычки в цитатах[править код]

Вы подредактировали Залп Авроры - оно конечно красивее, но редактирование цитат - это по моему скромному мнению не есть сильно хорошо --Evgen2 13:04, 3 июня 2006 (UTC)[ответить]

Как я понимаю это относится к правке участника Obersachse, который просто нажал Викификатор, в таком случае это не редактирование цитат, а просто соблюдение правил русской типографики. --Butko 05:19, 5 июня 2006 (UTC)[ответить]

Замена тегов[править код]

Добавьте:

// Replace small and big tags with inline styling
txt = txt.replace(/(\<small\>)/g, "<span style=\"font-size\:smaller\;\">");
txt = txt.replace(/(\<\/small\>)/g, "<\/span>");
txt = txt.replace(/(\<big\>)/g, "<span style=\"font-size\:1.25em\;\">");
txt = txt.replace(/(\<\/big\>)/g, "<\/span>");

--AlefZet 16:48, 1 сентября 2006 (UTC)[ответить]

Добавил. Это только приведение к XML имелось в виду или ещё что-то? --CodeMonk 22:23, 2 сентября 2006 (UTC)[ответить]
Ну да, к XHTML. Так всё-таки корректнее--AlefZet 23:22, 2 сентября 2006 (UTC)[ответить]

Ошибка в обработке изображений[править код]

Заметил такую ошибку: Викификатор меняет дефис в названии файла на тире.

Butko 11:53, 30 ноября 2005 (UTC)[ответить]

Убрал обработку галерей изображений. —CodeMonk 02:17, 10 января 2006 (UTC)[ответить]
Галереи не обрабатываются, а отдельные изображения всё ещё обрабатываются с ошибкой —Butko 11:39, 18 января 2006 (UTC)[ответить]
до викификации
Файл:William-Adolphe Bouguereau (1825—1905) - Nymphs and Satyr (1873).jpg
после викификации
Проблема шире. Тире вставляется даже внутри ссылок, в случае если там есть диапазоны годов или веков. Так, 1825-1905 превращается в 1825—1905. Отключить это? --Ctac (Стас Козловский) 20:24, 14 февраля 2006 (UTC)[ответить]
Не стоит. Это имхо не такой уж распространённый случай. --CodeMonk 00:00, 14 марта 2006 (UTC)[ответить]

А, кстати, зачем было убирать обработку галерей? Спецсимволов для исключений осталось уже всего три пары. Что такое может быть в галереях, что Викификатор может попортить? Может убрать это исключение, сэкономив спецсимволы?—Ctac (Стас Козловский) 21:18, 18 января 2006 (UTC)[ответить]

В галереях почти нет текста — только названия файлов — их можно попортить. А вообще мы уже исключили всё, что только можно. :-) Больше, видимо, спецсимволы не потребуются. —CodeMonk 22:07, 18 января 2006 (UTC)[ответить]

Неразрывный пробел в разрядах цифр[править код]

Как вам идея заменять пробелы, которыми разделяются разряды в длинных цифрах неразрывными. То есть в написанном с пробелами числе 1 000 000 обычные пробелы будут заменены на юникодовские неразрывные пробелы.

Предлагаю такое рег. выражение:

txt = txt.replace(/(?<=\d)(\s)(\d\d\d)(?=\D)/g, "\u00A0$2");

Никто не против? —Ctac (Стас Козловский) 08:23, 15 Мар 2005 (UTC)

Юникодовские неразрывные пробелы теряются при обработке страниц, то есть если его вставить, сохранить страницу, а потом заново открыть на редактирование, они будут заменены на обычные пробелы. —ajvol 10:02, 15 Мар 2005 (UTC)
Этот случай, по-моему, очень важен и здесь имеет смысл вставлять &nbsp;. Перевод строки посреди числа — это прямо хуже некуда. По сравнению с этим перевод строки в «т. е.» выглядит просто отлично. — Paul Pogonyshev 21:01, 27 Май 2005 (UTC)
На мой взгляд, все эти &nbsp; — зло. Пусть лучше часть сроки переносится, чем ухудшается читаемость статьи при редактировании. Лучше брать юникодовский пробел, который если вдруг и сотрётся, то ничего страшного не произойдет — бот автозамен легко вставит его снова. —Ctac (Стас Козловский) 08:57, 18 января 2006 (UTC)[ответить]
Ну, это пока ещё бот доберётся! А читателям, что же, видеть до тех пор перевод строки посередь числа?.. —Mithgol the Webmaster 16:21, 9 мая 2006 (UTC)[ответить]

Hi, i'm Sasa from sr: wiki, i want to ask you how can i include this just in my monobook.js, not to see all serbian wikipedia, but only me. -- Sasa r

See my monobook.js abd follow links to kk:--AlefZet 17:31, 3 сентября 2006 (UTC)[ответить]