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

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

Сообщения об ошибках[править код]

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

В «Лента.Ру» викификатор добавляет пробел после точки. Исправьте, пожалуйста. Медиа 08:50, 17 апреля 2007 (UTC)[ответить]

Предлагаю писать «Лента.ру» («ру» с маленькой буквы). Иначе Викификатору придётся «узнать» про «Ком, Орг, Ру, Уа, Де, …» — длинный список получается ∴ Alex Smotrov 22:43, 19 апреля 2007 (UTC)[ответить]

Горячие клавиши[править код]

Коллеги, а у меня вот в Firefox 1.5 Alt+W не викификатор включает, а редактирует список наблюдения (добавляет/удаляет страницу). Это к чему бы? Ilya Voyager 21:35, 27 апреля 2007 (UTC)[ответить]

Про Alt+W — это была устаревшая примерно на 11 месяцев фраза, когда ссылка для вызова Викификатора ещё была внизу. Я фразу убрал и предложил несложный персональный скрипт для кнопочки внизу и заодно горячей клавиши вызова ∴ Alex Smotrov 17:09, 16 мая 2007 (UTC)[ответить]

Исключение <source>[править код]

В следующей версии <source> будет исключён ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
✔ СделаноAlexSm 17:41, 9 ноября 2007 (UTC)[ответить]

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

Если взять такую интересную конструкцию:
http://какая-нибудь.ссылка - описание
и прогнать викификатором, он «пробел+дефис» заменит на «неразрывный пробел+тире», а последняя конструкция в свою очередь по всем правилам приклеивается к ссылке. Хотелось бы проверку на это дело. ~ putnik 09:45, 21 марта 2007 (UTC)[ответить]
Хочется исправить, но пока не совсем ясно как именно ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
✔ Сделано: теперь перед обработкой прячется http://ссылка и следующий за ней пробел (если есть) ∴ AlexSm 17:41, 9 ноября 2007 (UTC)[ответить]

Ужасы нашего викификатора[править код]

Попытка викификации MS-DOS привела к http://ru.wikipedia.org/w/index.php?title=MS-DOS&diff=3186267&oldid=3178200 Видимо проблема с обработкой '$'. `a5b 20:04, 11 февраля 2007 (UTC)[ответить]

Неудивительно: когда «спрятанные» куски текста возвращаются, $ в сочетании с некоторыми символами может «сыграть» во втором параметре replace (doc). В новой версии при спрятывании добавлю replace(/\$/g, "$$$$")AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
✔ СделаноAlexSm 17:41, 9 ноября 2007 (UTC)[ответить]

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

При попытке викификации Frame relay убиваются таблицы: [1]. `a5b 11:54, 10 февраля 2007 (UTC)[ответить]

Не надо перед таблицей ставить символ :, во всех примерах {| начинается с новой строки. Для отступа таблицы следует использовать например style="margin-left:10px"AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]

Заголовками с кавычками[править код]

Если в заголовке кавычки (знак дюйма), викификатор его портит. Пример — «Месть — блюдо, которое лучше всего подавать трижды». --putnik + 06:30, 1 февраля 2007 (UTC)[ответить]

Ещё сюда же. В статье Рыцарь дорог почему-то заменяет типографические кавычки на знаки дюйма (прогоните викификатор и посмотрите дифф). --putnik + 11:31, 3 февраля 2007 (UTC)[ответить]
Не понял оба примера. Или с тех пор уже исправили? ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
Действительно, Викификатор путал =="заголовок"== с атрибутом таблицы attr="style", и получалось нехорошо. ✔ ИсправленоAlexSm 19:18, 9 ноября 2007 (UTC)[ответить]

Category в шаблонах[править код]

Заметил, что Викификатор меняет Category на Категория в {{Навигация}} при этом ломается ссылка на Викисклад Может быть, в других шаблонах та же проблема --Butko 08:27, 17 апреля 2007 (UTC)[ответить]

Викификатор меняет названия только в локальных ссылках, т.е. начинающихся на [[ или [[:. Поскольку ссылки на категории на Викисклад должны выглядеть как [[commons:Category…, пока что не вижу как Викификатор может их ломать ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]

Еще об изображениях[править код]

Кажется, это уже обсуждалось и даже было как-то урегулировано, но сейчас проблема снова налицо: во многих шаблонах названия изображений приводятся в качестве параметров без квадратных скобок, и если там встречается сочетание "пробел-дефис-пробел", то викификатор, естественно, делает ссылки инвалидными. Нельзя ли запретить ему обрабатывать параметры шаблонов? Или тогда вылезут какие-нибудь другие грабли? Al Silonov 22:10, 5 июля 2006 (UTC)[ответить]

Угу. Разрешить обрабатывать только если они заключены в двойные квадратные скобки. MaxiMaxiMax 05:44, 6 июля 2006 (UTC)[ответить]
То есть: {{template|image=Image:Image-1.jpg}} нужно не трогать, а {{template|image=[[Image:Image-1.jpg]]}} можно обрабатывать и приводить к виду {{template|image=[[Изображение:Image-1.jpg]]}}. MaxiMaxiMax 06:10, 6 июля 2006 (UTC)[ответить]
Наверное, так, хотя меня в данном случае волновала не столько замена Image на Изображение, сколько замена "-" на "—". Она просто превращает ссылку в труху. Al Silonov 08:30, 6 июля 2006 (UTC)[ответить]

Неправильная работа с тегом code[править код]

После обработки получилось это. — Эта реплика добавлена участником Valodzka (ов) 10:34, 30 июля 2007 (UTC)[ответить]

Видимо не в <code> дело, а в появлении $ рядом с ' (подробнее см. выше). Будет исправлено ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
✔ СделаноAlexSm 17:41, 9 ноября 2007 (UTC)[ответить]

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

el:$100 laptop
eo:$100 Laptop
nl:$100-laptop
sv:$100 Laptop

Получается

el:100 laptop
eo:200 Laptop
nl:300-laptop
sv:400 Laptop

В статье Ноутбук XO-1 получается вообще что-то странное.

--AVRS 18:39, 12 октября 2007 (UTC)[ответить]

Скорее всего та же проблема с $, рассмотренная выше. Исправим ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
✔ СделаноAlexSm 17:41, 9 ноября 2007 (UTC)[ответить]

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

В шаблоне викификатор не удаляет пробелы перед символом '='. Но если имеем {{ш1| abc = {{ш2|...}} | bcd = ...}}, то викификатор удалит пробелы после bcd. `a5b 11:39, 6 апреля 2007 (UTC)[ответить]

Викификатор действительно не справляется со вложенными шаблонами. Он прячет всё, что находится между {{ и затем ближайшим }}. Чтобы правильно прятать шаблоны, при вызове которых использованы другие шаблоны, видимо придётся в этом месте отказаться от регекспов и написать отдельный алгоритм учёта количества открывающих и закрывающих скобок ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]

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

Викификатор в шаблонах у пустых полей убирает все, кроме одного, пробелы до знака «равно». Не понятно, почему он вообще лезет в шаблоны. Замечено на шаблоне {{Кинематографист}}. --putnik +

Та же вышеописанная проблема с вложенными друг в друга шаблонами ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]

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

Викификатор некорректно обрабатывает двойные кавычки, если текст, заключён в двойные или тройные апострофы.
Пример: после викификации: "Жирный «Очень»"
И вообще плохо отрабатывает двойные кавычки: „ЗАО «ПО Возрождение»“"ЗАО «ПО Возрождение»"--Андрей! 16:11, 6 сентября 2007 (UTC)[ответить]

Первый пример не совсем понял, насчёт второго могу сказать, что у ссылки [[статья|слово]] Викификатор прячет [[статья|, оставляя к дальнейшей обработке только слово]], отсюда и результат. Думаю, надо будет прятать всю ссылку ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
Спасибо, где-то в октябре заработало нормально, сейчас проверил — опять плохо.--Андрей! 06:16, 6 ноября 2007 (UTC)[ответить]
Похоже для нормальной обработки вложенных кавычек они должны начинаться с новой строки или пробела. Будем разбираться … ∴ AlexSm 17:41, 9 ноября 2007 (UTC)[ответить]
Исправлены оба случая ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

Тег ref и кавычки[править код]

Внутри тэга ref неправильно обрабатываются вложенные кавычки: [1]

  1. "Внешние кавычки «внутренние» снова внешние"

— Эта реплика добавлена участником Oscar 6 (ов) 22:32, 28 декабря 2006 (UTC)[ответить]

Не только в ref. Что-то вообще странное творится с Викификатором. --putnik + 07:34, 6 февраля 2007 (UTC)[ответить]
Исправлено ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

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

Некорректная обработка вложенных кавычек в вики-сылках:

...по его словам, "[[Три поросёнка (сказка)|"Три поросёнка"]] - самая известная сказка для детей."

превращается в:

…по его словам, «[[Три поросёнка (сказка)|»Три поросёнка"]] — самая известная сказка для детей."

Solon 13:06, 18 марта 2007 (UTC)[ответить]

Я попробовал сам исправить, изменив в программе строку:
txt = txt.replace(/([\x01-(\s\|\"]|\/|\+)(\")([^\"]{0,})([^\s\"(\|])(\")/g, "$1«\$3\$4»"),
однако всё осталось по-старому, хотя в том же AWB выражение работает правильно. Solon 14:44, 18 марта 2007 (UTC)[ответить]


Если запустить на предложенном примере функцию ProcessTypography(), то видно, что сама по себе она отрабатывает правильно. Виновник тут — строка

var links = ReplaceElements( "(\\[\\[)(.*?)(\\||\\]\\])", "\x10", "\x11" );

которая ещё до ProcessTypography() заменяет кусок [[статья| на что-то своё. Как починить, увы, не знаю. — Alex Smotrov 23:27, 6 апреля 2007 (UTC)[ответить]

Теперь понятно, у внутренней ссылки Викификатор перед обработкой прячет только первую часть (название статьи). Если не будет возражений, буду прятать всю ссылку ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
Как бы исправлено, однако теперь текст ссылки (часть после "|") вообще не обрабатывается. Возможно это в будущем также будет исправлено ∴ AlexSm 19:18, 9 ноября 2007 (UTC)[ответить]
Кажется, я уже примерно знаю как исправить. Внутренняя ссылка будет прятаться почти как раньше (только левая часть), но при этом | будет оставаться ∴ AlexSm 05:44, 12 ноября 2007 (UTC)[ответить]
Исправлено, хотя с тонкостями обработки вложенных кавычек надо будет ещё разбираться ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

Ещё один баг?[править код]

Я заметил, что конструкции типа == "текст" == вызывают сложности. — Obersachse 16:42, 16 мая 2007 (UTC)[ответить]

Видимо эта конструкция случайно подпадает под правило «Кавычки после знака „равно“ и весь текст внутри них Викификатором не обрабатываются» (которое существует для игнорирования значений атрибутов типа border="0"). Лично я большой проблемы тут не вижу — во-первых, заголовки обычно достаточно заметны, чтобы такое не пропустить, а во-вторых, можно быстро выделить мышкой сам текст заголовка и тогда нажать кнопку Викификатора ∴ Alex Smotrov 17:09, 16 мая 2007 (UTC)[ответить]
Уберу строку, которая прячет атрибуты (потому что сами теги всё равно прячутся следующей строкой), и заголовки будут обрабатываться нормально ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]
Увы, выяснилось, что атрибуты бывают и у таблиц. Пока не исправлено, будем думать ∴ AlexSm 17:41, 9 ноября 2007 (UTC)[ответить]
Частично исправлено, теперь обрабатывается == "текст" == (с пробелами внутри), а если без пробелов, то Викификатор нужно запустить два раза (в первый раз добавляется пробел, в второй кавычки меняются на «») — будет позже исправлено ∴ AlexSm 19:18, 9 ноября 2007 (UTC)[ответить]
Исправлено ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

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

Викифифатор не обрабатывает, например, одиночное слово в кавычках. NBS 01:04, 12 ноября 2007 (UTC)[ответить]

Если это слово находится в самом начале страницы (т.е. первый символ — это кавычка), то действительно временно не обрабатывает, завтра исправлю. Если нет — то пожалуйста более конкретный пример, или (если есть) ссылку на конкретную страницу ∴ AlexSm 05:44, 12 ноября 2007 (UTC)[ответить]
Первый символ выделенного фрагмента — кавычка. NBS 09:01, 12 ноября 2007 (UTC)[ответить]
Исправлено, было такое дело, не продумал ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

А если вообще не работает?[править код]

У меня вчера Викификатор вообще перестал работать, жму на кнопку — и никаких изменений. Попробовал запустить в IE — только заменяет "" на «» (в Opera даже этого не делает). С чем это может быть связано (проблема, конечно, у меня, но вдруг кто-то уже сталкивался с таким и смог исправить)? (+Altes (+) 09:38, 13 ноября 2007 (UTC)[ответить]

  • У меня в Opera тоже не работает; в IE отказывается заменять дефисы, окружённые пробелами — остальное делает, вроде, всё. NBS 12:59, 13 ноября 2007 (UTC)[ответить]
  • В Опере теперь работает (Ctrl-R для обновления), прошу прощения что в этот раз Оперу перед записью не проверял. Замена на тире была специально ограничена только пространством статей (из-за одновременной вставки неразрывного пробела), сейчас ограничение убрал, неразрывный пробел будем убирать по-другому ∴ AlexSm 15:26, 13 ноября 2007 (UTC)[ответить]
    Спасибо, после обновления всё работает как надо. (+Altes (+) 17:53, 13 ноября 2007 (UTC)[ответить]

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

  • Годы с дефисом между ними в скобках обрабатываются нормально, а без скобок — не всегда. Например, если выделить только цифры и дефис, 1918-1920 викификатор не обработает.
  • И ещё — не проблема, а странность (в работе не мешает). При обработке нескольких абзацев или нескольких пунктов списка выделенным остаётся не только викифицированный текст, но и несколько символов до него.

--NBS 13:51, 14 ноября 2007 (UTC)[ответить]

Я проверил, и старый Викификатор поступал точно так же. С обработкой выделенного текста в принципе есть неустранимая опасность обработать не так, как нужно (пример: <nowiki>текст</nowiki>). Особенно на границах выделения, когда скрипт не знает, что находится перед 1м символом и за последним. В данном случае есть regexp
 txt = txt.replace(/(\(|\s)([12]?\d{3})[\u00A0 ]?(-|--|–|—) ?([12]?\d{3})(\W)/g, '$1$2—$4$5')
который заменяет «2000 - 2001» (с пробелами или без) на «2000—2001» (с тире), но только если в самом начале есть перевод строки или пробел или (, а в самом конце любой символ кроме a-zA-Z0-9_. Вот этого последнего символа Викификатору и не хватает. Я сейчас затрудняюсь сказать, насколько правильный этот regexp, но видимо он создавался чтобы учесть возможные варианты и исключить случаи, когда не нужно заменять на тире.
Ещё отмечу, что при обработке выделения Викификатор притворяется, что оно начинается с пробела; возможно имеет смысл так же притвориться и в конце выделения.
Что касается странности — старый Викификатор вообще визуально не сохранял выделение, в новом я попытался это исправить. Проблема сейчас в подсчете количества переводов строки, исправлю следующей правкой ∴ AlexSm 16:36, 15 ноября 2007 (UTC)[ответить]
Выделенность текста после обработки в основном исправлена. Заодно разрешено выделение текста в нормальном современном браузере Safari 3 (по крайней мере для Windows, где я мог сам проверить)AlexSm 19:54, 14 декабря 2007 (UTC)[ответить]

Библиография[править код]

При вставке библиографии заметила, что викификатор убирает точку в сочетании с., (где с. - страницы). Нужно как-то продумать этот момент. И еще: не исправляет «пробел:пробел» на «:пробел».--Mariluna 08:57, 15 декабря 2007 (UTC)[ответить]

Про точку к сожалению не понял, можно конкретный пример? Пробел перед : видимо имеет смысл убирать, если конечно это ничего не сломает, надо подумать… ∴ AlexSm 20:06, 17 декабря 2007 (UTC)[ответить]
  • Пример:
    • Горчаков О.А. Вызываем огонь на себя / Горчаков О.А., Пшимановский Я. - М.: Мол. гвардия, 1960. - 238 с.: ил., портр.
    • Пшимановский Я. Четыре танкиста и собака : повесть / Пер. с польск. О. Акимченко [и др. Илл.: Н. А. Абакумов]. Кн. 2. - М.: Воениздат, 1971. - 414 с., текст

— Эта реплика добавлена участницей Mariluna (ов) 12:06, 18 декабря 2007 (UTC)[ответить]

А, ну если перед буквой «с» идёт цифра, то Викификатор принимает это за «секунды», и (как и для остальных единиц измерения: кг, м …) убирает последующую точку. К сожалению, я пока не вижу как можно исключить такой случай, они слишком похожи. Если ничего не придумаю, видимо придётся спрашивать как быть на форуме ∴ AlexSm 18:21, 19 декабря 2007 (UTC)[ответить]
Кроме как писать «стр.» больше пока ничего предложить не могу :( ∴ AlexSm 18:37, 8 января 2008 (UTC)[ответить]


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

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

Вот и ещё один участник-викификатор-форума. Каждому отдельно объяснять мне кажется смысла не имеет. Предлагаю, чтобы на страницах форумов Викификатор сам предупреждал о крайней нежелательности викификации всего текста. Могу разработать нужный код. При отсутствии ответа в течение двух недель буду искать жертву-администратора и донимать лично :) — Alex Smotrov 23:27, 6 апреля 2007 (UTC)[ответить]

Да, донимать лично — это наилучшая идея :) Конечно, такой код будет полезен. --Александр Сигачёв (ajvol) 22:35, 9 апреля 2007 (UTC)[ответить]


Предлагаемый код: в самое начало функции Process():

if (wgNamespaceNumber % 2 || wgNamespaceNumber==4) {
 var sigs = txt.match(/\d\d:\d\d, \d\d? \S{3,9} 20\d\d \(UTC\)/g);
 if (sigs && sigs.length > 1)
   if (!confirm('Пожалуйста, не обрабатывайте Викификатором реплики других участников. Вы уверены, что хотите продолжить?')) 
     return;
}
  • Первая строка проверяет, находимся ли мы на странице обсуждения (нечётное пространство) или в пространстве «Википедия:» (где собственно форумы и находятся). В принципе необязательна, но зато код не замедляет Викификатор при обработке статей в основном пространстве.
  • Затем код ищет в тексте подписи участников. Одну подпись разрешено обработать (например участник «викифицирует» свою уже записанную реплику).
  • Если найдено две подписи, то выдаётся предупреждение (текст можно улучшить). Если участник нажимает cancel, то текст не обрабатывается.
  • Если у участника стоит auto_comment=1, то слово 'Викификатор' в любом случае добавится в описание изменений, однако то же самое происходит и при отрицательном ответе на вопрос 'Wikificator will process ALL text on this page. Continue?' в некоторых браузерах (кстати, почему на английском?) — это недостаток существующей структуры кода Викификатора.

Alex Smotrov 13:50, 16 апреля 2007 (UTC)[ответить]

Ау! код уже есть. Давайте его использовать.
Ещё есть два мелких предложения:
  • не заменять user → участник, в статьях всё равно не нужно, а на форуме только лишний вред
  • в коде проверять window.auto_comment == 1, тогда не нужно будет определять эту переменную в MediaWiki:Common.js (такой синтаксис не выдаёт ошибки если переменной нет)
Alex Smotrov 22:43, 19 апреля 2007 (UTC)[ответить]

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

Предлагаю встроить автозаменитель (по правилу Википедия:Список сокращений)

  • до нашей эры -> до н. э.
  • Смотрите также -> См. также
  • северной широты, южной широты -> с. ш., ю. ш.
  • восточной долготы, западной долготы -> в. д., з. д.

Lockal 10:20, 20 июля 2007 (UTC)[ответить]

Ну, раз там написано «обязательные к использованию сокращения», и никто пока не возразил, то почему бы и нет? С другой стороны, если замена будет внутри цитаты, то наверное нехорошо получится … ∴ AlexSm 05:44, 12 ноября 2007 (UTC)[ответить]
Насчёт первого: испортится, например, статья До нашей эры. Другие замены, если подумать, тоже иногда могут быть нежелательны. Возможно стоить сделать версию Викификатора, которая на каждую не 100%-очевидную замену спрашивает подтверждения? А вот замену ==Смотрите также== или ==См также====См. также== думаю можно добавить прямо сейчас ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]
Добавил замену ==См. также==, а также ==Сноски====Примечания==AlexSm 19:54, 14 декабря 2007 (UTC)[ответить]

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

Предлагаю добавить автозамену <sup>2</sup> | <sup>3</sup> — на ² | ³, а (к)м2 | (к)м3 — на (к)м² | (к)м³. snch 14:47, 27 июля 2007 (UTC)[ответить]

Первое уже предлагалось раньше: «Лучше не надо. В моём браузере они выглядят весьма по-разному и соседство, скажем 5 и ² будет смотреться странно. — doublep 13:44, 17 декабря 2006 (UTC)». Второе, пожалуй, имеет смысл. — doublep 15:37, 27 июля 2007 (UTC)[ответить]
Ну оно не так и часто встречается рядом — ² и 5 =). А может быть, можно где-нибудь в глобальных свойствах оформления прописать, чтобы для <sup>|<sub> было, например, font-size: 75%? snch 19:39, 27 июля 2007 (UTC)[ответить]
В математических статьях довольно часто. Не стоит оно того, всё равно для какого-то браузера 75% надо, ещё для какого-то 85%, и т. д. — doublep 20:03, 27 июля 2007 (UTC)[ответить]

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

Посмотрите код в Wikipedia:WikiProject User scripts/Scripts/Formatter. Где-то пересекается с Викификатором. Изящные идеи по включению Викификатора через закладку вместо кнопки, цепочные реплейсы, использование свойства value и т.п.--AlefZet 15:54, 6 мая 2007 (UTC)[ответить]

Ссылку вместо кнопки можно легко сделать как персональный скрипт. Цепочные replace просто укорачивают код, возможно где-то использую такой подход. В использовании value текстового поля ничего изящного не вижу, по-моему постоянное обращение к DOM только замедлит скрипт ∴ AlexSm 21:38, 5 ноября 2007 (UTC)[ответить]

В обсуждениях[править код]

В данный момент Викификатор при запуске в пространствах обсуждений и в пространстве «Википедия:» проверяет сколько «подписей» в обрабатываемом тексте, и если больше одной, то выводит предупреждение «Пожалуйста, не обрабатывайте Викификатором реплики других участников. Вы уверены, что хотите продолжить?» с кнопочками Ok и Cancel. К сожалению, некоторых участников это не останавливает, в результате мы имеем огромные диффы, искажение стиля правок других участников, и затем снова большие диффы, когда следующий участник с Firefox заменяет неразрывные пробелы обратно на обычные. Я собираюсь:

  • вместо предупреждения вообще отказываться запускать обработку
  • при использовании в любом пространстве не-статей вообще не использовать неразрывные пробелы

Таким образом, в дискуссиях участник сможет обработать кусок текста только с одной подписью (например свою предыдущую реплику), при этом неразрывные пробелы вставляться не будут. Есть возражения? ∴ Alex Smotrov 16:51, 3 октября 2007 (UTC)[ответить]

Викификатор больше не обрабатывает дискуссии (чужие реплики, по крайней мере) ∴ AlexSm 17:41, 9 ноября 2007 (UTC)[ответить]
У кого есть возражения тот исправляет monobook.js :) ~ Aleksandrit 08:00, 11 ноября 2007 (UTC)[ответить]
С помощью своего кода в monobook.js конечно можно обойти, но это не совсем тривиально. Во всяком случае, не так, как ты пока что у себя сделал ∴ AlexSm 05:44, 12 ноября 2007 (UTC)[ответить]

Дополнительно собираюсь сделать, чтобы Викификатор использовал неразрывные пробелы только в пространстве статей ∴ AlexSm 16:36, 15 ноября 2007 (UTC)[ответить]

Пунктуация[править код]

Перенесено из Википедия:Запросы к ботоводам.

Предлагаю:

Добавить автозамену для выражений, где всегда есть запятые.

  • , например,
  • , напр., на , например,
  • , пожалуйста,
  • , так как
  • , вероятно,
  • Стоит заметить,
  • После того, как
  • Дело в том, что
  • пробел том, что
  • пробел то, что
  • В общем,
  • Следовательно, (нужно уточнить)
  • и другие.

При такой замене нужно учесть вариант появления двойных запятых, поэтому замена 2 запятых на 1 запятую (,, на ,).

Сочетания:

  • в течении .... времени на в течение времени (кроме в течении воды, реки)

Предлагаю автозамену пробелов: замена 2 пробелов на 1. На одной странице нужно сделать несколько раз. Только есть проблема: шаблоны содержат пробелы для удобства заполнения. Некоторые вставки и цитаты разграничены пробелами вместо табличного варианта. Пример: Расстрел царской семьи--Mariluna 22:30, 11 ноября 2007 (UTC)[ответить]

Ещё:

  • замена 2 запятых на 1 запятую (,, на ,)
  • пробел шт, на пробел шт.,
  • цифра от 0 до 9 без пробела шт. на цифра от 0 до 9 пробел шт.
  • то же с г., м
  • пробел запятая на запятая (( ,) на (,))
  • то же с точкой, скобками перед ними и после
  • пробел буква б пробел на пробел цифра 6 пробел
Осторожно с фразами типа "... учился в классе 8 б" — Obersachse 11:09, 11 ноября 2007 (UTC)[ответить]
Тогда нужно организовать поиск и выбрать исключения. Можно это сделать?
  • то же самое с буквой з и цифрой 3
  • то же самое с буквой о и цифрой 0
  • то же самое с буквами i, l и цифрой 1
  • пробел t пробел цифра(от-100до400хотя бы) пробел 0C на t пробел цифра пробел °C
А как быть со цветами в записи #FF0CAA"? Осторожно с автозаменой. — Obersachse 11:09, 11 ноября 2007 (UTC) Сорри, просмотрел букву t. — Obersachse 13:42, 11 ноября 2007 (UTC)[ответить]
А причём тут #FF0CAA"? Если я предлагаю на замену комплексное выражение:пробел t пробел цифра 0C пробел
  • пробел t пробел цифра пробел градусов пробел C на пробел t пробел цифра пробел °C

Такая замена полезна особенно в кулинарной тематике в Викитеке.

  • / на пробел / пробел, при условии, что потом сделать автозамену пробелов: замена 2 пробелов на 1.

--Mariluna 11:40, 9 ноября 2007 (UTC)--Mariluna 09:10, 8 ноября 2007 (UTC)[ответить]

Это, скорее, на Обсуждение Википедии:Викификатор. Гонять ботов ради пунктуации нецелесообразно. ~ putnik 13:03, 11 ноября 2007 (UTC)[ответить]

Что можете сказать?--Mariluna 13:12, 11 ноября 2007 (UTC)[ответить]

Частично это уже реализовано в викификаторе, ряд автозамен неоднозначны, требуют учёта многих исключений. Некоторые предложения, например с °C, просто ошибочны. Solon 13:18, 11 ноября 2007 (UTC)[ответить]
А почему градусы ошибочны?--Mariluna 14:38, 11 ноября 2007 (UTC)[ответить]
После числа и перед °С требуется ставить пробел. Solon 15:33, 11 ноября 2007 (UTC)[ответить]
Исправила.--Mariluna 22:30, 11 ноября 2007 (UTC)[ответить]

Как указал выше Solon, некоторые замены уже реализованы (например уже давно несколько пробелов заменяются одним пробелом, и корректно расставляются пробелы вокруг точки и запятой), а некоторые потенциально опасны, потому что когда-нибудь наверняка заменят не то, что нужно. Я постараюсь рассмотреть предложенные замены позже, когда исправлю некоторые известные ошибки. При этом надо не забывать и про «полезность» каждой отдельно взятой замены: в отличие от бота, мы не можем делать код Викификатора слишком большим, например вставить все орфографические поправки из Википедия:AutoWikiBrowser/Typos. В этом смысле нам ближе например Участник:CodeMonkBot/Автозамены и Участник:Edwardspec TalkBot/Автозамены.

P.S. А вот исправление «в течении» ну вообще по-моему никак в Викификатор не засунешь — слишком сложно ∴ AlexSm 05:44, 12 ноября 2007 (UTC)[ответить]

По поводу в течении я тут посмотрела, по поиску получается очень много найденных. Может сделать фильтр по географическим названиям? Где реки, озера - пропускать.
Контрпримеры: «в течении маленькой реки», «в течение двух лет все реки испарились».AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]
Тогда нужно сделать объявление, чтобы энтузиасты вручную исправляли. Только где его поместить?--Mariluna 07:19, 13 ноября 2007 (UTC)[ответить]
Очень часто применяется сокращение из БСЭ - Лит.: заменяем на Литература:--Mariluna 06:02, 12 ноября 2007 (UTC)[ответить]
Также например
«…(лит. auksinas; остмарка)…» (да, неправильно, но бывает и так). Кроме того, слово «лит» может просто прийтись на конец предложения ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]
По поводу Лит.: - Л с большой буквы всегда, и должны быть знаки .:. Поэтому автозамена должна быть однозначной, других значений не может быть.--Mariluna 07:19, 13 ноября 2007 (UTC) А нет, есть другие значения - Лит.: - Литовский.--Mariluna 07:21, 13 ноября 2007 (UTC)[ответить]

Возможно позже попробую написать отдельный скрипт, который предлагает делать некоторые замены в диалоговом режиме ∴ AlexSm 15:26, 13 ноября 2007 (UTC)[ответить]

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

Предлагаю добавить в Викификатор следующее:
1. Удаление точек и двоеточий в конце названий разделов, так как многие участники их ставят.
Например:

== Предпосылки. ==

или

== Список перcонажей: ==

Вики-разметка и так прекрасно выполняет функции по визуальному отделению названия раздела от текста в нём, точки и двоеточия никчему.
2. Сейчас, если перед началом раздела идёт текст, то Викификатор отделяет его пустой строкой:

ТЕКСТ ПРЕДЫДУЩЕГО РАЗДЕЛА
== Новый раздел ==

после викификации:

ТЕКСТ ПРЕДЫДУЩЕГО РАЗДЕЛА

== Новый раздел ==

Предлагаю в дополнение к этой функции сделать удаление одной или нескольких пустых строк между названием раздела и текстом в нём:

== Название раздела ==

ТЕКСТ РАЗДЕЛА

после викификации:

== Название раздела ==
ТЕКСТ РАЗДЕЛА

redmond barry 01:57, 17 декабря 2007 (UTC)[ответить]

Думаю, первое предложение можно реализовать. Со вторым сложнее — разные участники по-разному понимают как лучше, и я помню когда-то видел спор по этому поводу. P.S. Кстати, если неразрывный пробел — это часть подписи, нельзя ли его пожалуйста убрать? См. описание проблемы тут: Википедия:Викификатор#Вставка неразрывных пробелов AlexSm 20:06, 17 декабря 2007 (UTC)[ответить]
Убрал. — redmond barry 04:53, 18 декабря 2007 (UTC)[ответить]
Сделано: теперь Викификатор убирает точку или двоеточие в конце заголовков ∴ AlexSm 18:37, 8 января 2008 (UTC)[ответить]

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

Ранее участник мог «включить» себе автоматическое добавление слова «Викификатор» в описание правки при каждом использовании Викификатора (с помощью добавления auto_comment = 1 в свой monobook.js). Однако слово добавлялось при каждом нажатии, т.е. могло добавиться несколько раз подряд (сейчас исправлено), а также при обработке фрагмента, что было неудобно. Предлагаю сделать добавление слова «викификатор» автоматическим для всех участников, но только при обработке всей страницы ∴ AlexSm 18:21, 19 декабря 2007 (UTC)[ответить]

Теперь Викификатор добавляет слово «викификатор» в описание правки при обработке всего текста (без выделения). Вероятно будут возражения … ∴ AlexSm 18:37, 8 января 2008 (UTC)[ответить]
  • Не просто возражения, а категорические возражения:
    • возникают странные и крайне неудобные (это — мягко говоря) описания при создании новых статей;
    • возникают вот такие заголовки при создании новых тем в обсуждении.
    • PS. К тому же это добавляется даже тогда, когда никакой викификации не было, а было сообщение «Викификатор не обрабатывает обсуждения». NBS 19:42, 9 января 2008 (UTC)[ответить]
  • Да, про создание новой секции в обсуждении я и не подумал. Впрочем, как и про редактирование отдельной секции в статье. Убрал (точнее, снова проверяется переменная auto_comment). А с надлежащими проверками, то есть когда описание «викификатор» будет вставляться только при обработке всей статьи (в основном пространстве), тоже будут возражения? ∴ AlexSm 20:06, 9 января 2008 (UTC)[ответить]
    • Если не будет вставки вместо автоматического описания при создании новой статьи — тогда, вроде, возражений нет. NBS 20:32, 9 января 2008 (UTC)[ответить]


Разное[править код]

Те-же кавычки[править код]

Почему-то при викификации перестали изменяться кавычки и ставиться пробелы после запятой. --Medved' 14:16, 20 января 2007.
P. S. Викификация вообще перестала работать. Medved' 13:07, 22 января 2007 (UTC)[ответить]

В каком браузере? У меня в Firefox 2.0 все работает. Можно поробовать очистить кэш. — doublep 13:51, 22 января 2007 (UTC)[ответить]

Опять перестала работать!!!!! Форменное безобразие! Я уж боюсь - это не от завершения сеанса? Просто, только что я завершил на время регистрационный сеанс и зарегистрировался заново под своим именем, викификация не работает.--Medved'?!+ 13:36, 14 марта 2007 (UTC)[ответить]

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

В описании викификатора сказано, что он, мол, «Расставляет пропущенные знаки градуса. Так, „+4 C, -10 C, +453 F и -20 F“ будут превращены в „+4 °C, -10 °C, +453 °F и -20 °F“». Но у отрицательных величин должен стоять минус («–»), а не дефис. snch 00:15, 18 мая 2007 (UTC)[ответить]

Он и так расставляет нормальные минусы (кстати, не «–», а «−»). Надо только викифицировать пример и поправить документацию. — Kalan ? 07:25, 16 июля 2007 (UTC)[ответить]

Объявление о начале работ[править код]

У меня наконец дошли руки до Викификатора, постараюсь по мере сил исправлять перечисленные выше проблемы. Новые версии на всякий случай будут записываться в MediaWiki:WikificatorBeta.js и запускаться только у админов. Если за несколько дней никто из них не пожалуется, то новая версия записывается на обычное место MediaWiki:Wikificator.jsAlex Smotrov 16:51, 3 октября 2007 (UTC)[ответить]

Новая версия записана. Список изменений в Обсуждение MediaWiki:Wikificator.js. Ждём сообщений об ошибках. ∴ AlexSm 17:41, 9 ноября 2007 (UTC)[ответить]
Кстати, есть способ легко запустить старый Викификатор (до недавних масштабных изменений) ∴ AlexSm 21:18, 12 ноября 2007 (UTC)[ответить]

Соцзаказ для лакского раздела (и родственных)[править код]

Нужна облегчённая версия викификатора для лакского раздела Википедии (лакский — один из литературных языков Дагестана). Думаю, бо́льшую часть функциональности викификатора оттуда можно убрать (разве что кавычки оставить), но очень нужно добавить функцию автоматической замены единиц в тексте на заглавные i (I).

Нужно это для того, чтобы поддержать носителей лакского языка, которые привыкли набирать вместо «палочки» простую единицу (что удобно, не надо переключать раскладки), и чтобы делать лакские тексты всё-таки похожими на то, как они должны выглядеть. Заодно кроме единиц можно заменять и латинскую l (её иногда тоже пишут вместо палочки).

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

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

Временный администратор лакского раздела — Участник:Yaroslav Blanter. Он может вставить получившийся код в интерфейс.

Получившийся викификатор мог бы пригодиться и в других разделах на языках, использующих «палочку». От имени участников проекта ПРО:ВРЯ заранее спасибо. Amikeco 15:28, 16 ноября 2007 (UTC)[ответить]

Думаю, можно было сразу дать ссылку на статью Лакский язык. Если я правильно понял, заменяться должны сочетания К1 к1 П1 п1 Т1 т1 Х1 х1 Ц1 ц1 Ч1 ч1. Непонятно с одинокой I — есть и такая буква? Её ведь саму по себе от 1 не отличишь. Возможно придётся сделать скрипт диалоговых замен, когда неясные случаи показываются пользователю с подтверждением да/нет (как например проверка орфографии во многих программах). В общем, хотелось бы больше информации о языке, какие именно уже существующие в Викификаторе замены можно оставить, и я вполне могу написать такой скрипт. P.S. Предлагаю дальнейшее обсуждение куда-нибудь перенести, например в lbe:AlexSm 19:54, 16 ноября 2007 (UTC)[ответить]
При ближайшем рассмотрении задача упростилась. Обсуждение перенёс, по вашему предложению, сюда: lbe:Википедия:Портал сообщества. Amikeco 04:19, 17 ноября 2007 (UTC)[ответить]

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

пусть еще «image» на «изображение» заменяет по аналогии с «category» ~ Aleksandrit 17:05, 5 ноября 2007 (UTC)[ответить]

Предложения лучше делать в Обсуждение Википедии:Викификатор. В данном случае хорошо бы сразу обосновать, что такая замена точно не испортит ничего для ссылок на картинки на CommonsAlexSm 17:23, 9 ноября 2007

Ноябрь 2007[править код]

Викификатор сильно переписан, основной список изменений см. ниже ∴ AlexSm 17:23, 9 ноября 2007 (UTC)[ответить]

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

  • оптимизирован способ спрятывания кусков текста
  • код многих мелких функций перемещён обратно в основную функцию
  • много мелких косметических правок
  • код теперь проверяет window.auto_comment, и не нужно её заранее определять
  • wmEnNS = new Array ('category') ... for... заменён на один regexp
  • typography() пока вызывается один раз, не совсем понятно для чего раньше было два

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

  • перед обработкой прячется вся внутреняя ссылка, а не только [[статья|
  • вместо спрятывания [http://ссылка] прячется http://ссылка. Это позволяет избежать вставки неразрывного пробела в конструкцию «http://ссылка — описание», а также викифицирует описание ссылки при использовании []
  • не работали замены <<text>>"text", <sup>2</sup>², <sup>3</sup>³, потому что были после прятания тегов
  • больше не удаляются пробелы в конце текста при обработке выделенного текста
  • В IE и Opera исправлено выделение текста после обработки (примерно как mediazilla:10526)
  • при разворачивании спрятанных кусков нехорошо срабатывал специальный символ $, если за ним шёл один из символов &`' или число (doc)
  • "Викификатор" к описанию правки теперь не добавляется в том (правда, достаточно редком) случае, когда в одном из старых браузеров на вопрос "Wikificator will process ALL text on this page. Continue?" пользователь отвечает Cancel

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

  • полный запрет на обработку Викификатором дискуссий
  • прячется новый тег <source>текст</source>
  • добавляется (отсутствующая) пустая строка перед заголовком секции

Убрано[править код]

//Replace double hyphen with a dash
txt = txt.replace(/(--)(\[\[Участник|\~\~\~)/g, "—$2")

Викификатор — не для обработки дискуссий.

//improve hr and br
txt = txt.replace(/\<hr ([^\>\/]+?) ?\/?\>/gi, '<hr $1 />')
txt = txt.replace(/\<br\/?\>/gi, '<br />')
txt = txt.replace(/\<br ([^\>\/]+?) ?\/?\>/gi, '<br $1 />')

В любом случае в HTML всегда получается <br />, поэтому нам нет смысла просто так удлинять викикод.

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

Это не cross-browser, и похоже всё равно не работает даже в IE (6).

 // 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>");

Код не нужен и всё равно был закомментирован.

wmWontWork = 'Wikificator will not work in Netscape 4.x and less'

Пользователям нет большой разницы, почему конкретно Викификатор не работает в их браузере, поэтому этот случай объединён с 'Wikificator cannot work in your browser'.
AlexSm 17:23, 9 ноября 2007 (UTC)[ответить]

Замечание: позже было возвращено «улучшение» <br /> — оно не мешает, и сразу показывает как правильно писать HTML ∴ AlexSm 22:48, 13 декабря 2007 (UTC)[ответить]

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

  • Снова прячется только первая часть [[ссылки, но теперь оставляется символ |, чтобы правильно обрабатывались кавычки внутри.
  • Добавлены замены в заголовках: «смотрите также» → «см. также», «сноски» → «примечания».
  • Неразрывный пробел не вставляется в нечётных пространствах и в пространстве «Википедия:».
  • При получении выделенного текста Opera теперь пользуется теми же методами, что и Firefox (а не IE как раньше).
  • При получении выделенного текста «разрешено» использование современного браузера Safari 3, который к сожалению рапортует очень старый navigator.productSub = 20031000 — такой же, как и у старого Gecko, про который вроде бы известно, что он неправильно обрабатывает выделенный текст. Возможна проблема с Safari 1.3, если им еще кто-то пользуется ∴ AlexSm 22:48, 13 декабря 2007 (UTC)[ответить]