Обсуждение Википедии:Викификатор/Архив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 lang=""></source>. stassats 15:53, 29 мая 2007 (UTC)
- В следующей версии <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)
- Не понял оба примера. Или с тех пор уже исправили? ∴ AlexSm 21:38, 5 ноября 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)
- Спасибо, где-то в октябре заработало нормально, сейчас проверил — опять плохо.--Андрей! 06:16, 6 ноября 2007 (UTC)
Тег ref и кавычки[править код]
Внутри тэга ref неправильно обрабатываются вложенные кавычки: [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)
- Первый символ выделенного фрагмента — кавычка. NBS 09:01, 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)
- Ну оно не так и часто встречается рядом — ² и 5 =). А может быть, можно где-нибудь в глобальных свойствах оформления прописать, чтобы для <sup>|<sub> было, например, font-size: 75%? snch 19:39, 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)
- У кого есть возражения тот исправляет monobook.js :) ~ Aleksandrit 08:00, 11 ноября 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 15:33, 11 ноября 2007 (UTC)
- А почему градусы ошибочны?--Mariluna 14:38, 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)
- Убрал. — redmond barry 04:53, 18 декабря 2007 (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.js ∴ Alex 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)
Перенесённое с Обсуждение MediaWiki:Gadget-wikificator.js[править код]
image[править код]
пусть еще «image» на «изображение» заменяет по аналогии с «category» ~ Aleksandrit 17:05, 5 ноября 2007 (UTC)
- Предложения лучше делать в Обсуждение Википедии:Викификатор. В данном случае хорошо бы сразу обосновать, что такая замена точно не испортит ничего для ссылок на картинки на Commons ∴ AlexSm 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)