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

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

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

Было бы хорошо, если бы викификатор убирал (невидимые) переносы. Пример текста: "В результате побеждённые получили редкую возмож­ность создавать свои боевые единицы в условиях менее жёстких ограничений, чем сами победители. Более того, если бы немцам удалось создать проект, уг­рожающий существующему равновесию сил, бывшим союзникам пришлось бы тратить драгоценный линкорный тоннаж на то, чтобы парировать такой выпад". В этом тексте есть два переноса, которые викификатор не убирает. -- AVBtalk 12:26, 6 сентября 2008 (UTC)[ответить]

А зачем это надо? — putnik 23:56, 9 января 2009 (UTC)[ответить]

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

В статье Linn's Stamp News возникла проблема в связи с исправлением, которое викификатор делает, заменяя английский апостроф на «отечественный». Нельзя ли решить эту проблему каким-либо образом? Спасибо. --Michael Romanov 21:27, 15 января 2009 (UTC)[ответить]

Это не русский апостроф, он международный. Просто в английском не принято заморачиваться по этому вопросу. — putnik 05:42, 16 января 2009 (UTC)[ответить]
Хорошо, если международный. В любом случае, можно ли как-то научить викификатор не исправлять английский апостроф? --Michael Romanov 06:05, 16 января 2009 (UTC)[ответить]
Вам же сказано, что он международный и в английском тоже используется DSR|Open 12:00, 16 января 2009 (UTC)[ответить]
Научить можно, но я не вижу повода это делать. Традиционно у нас в разделе и в русских и в иностранных текстах (включая названия статей) используется один и тот же апостроф. Если вы считаете, что это неверно (я не берусь обсуждать на профессиональном уровне, а на дилетантском мне это кажется разумным), то правильнее решать такие вопросы через общее обсуждение, а уже потом подгонять Викификатор под правила. — putnik 22:29, 17 января 2009 (UTC)[ответить]

Еще раз о кавычках[править код]

Можно научить викификатор ставить типографские кавычки в этом случае - дом-"трилистник"? Или это технически невозможно? DSR|Open 10:04, 21 января 2009 (UTC)[ответить]

Сделал у себя, тестирую. Надо понять, не испортят ли эти замены что-нибудь. — putnik 11:18, 22 февраля 2009 (UTC)[ответить]
✔ Сделано. — putnik 16:32, 23 февраля 2009 (UTC)[ответить]
  • Привет! У меня в браузере не видно кнопки Викификатора, и довольно давно. Браузер ИЕ 6.0. Как починить? Спасибо - Vald 23:06, 26 января 2009 (UTC)[ответить]
  • Я попробовал редактировать статью в IE 7, там тоже сначала не было кнопок Викификатора и сообщалось об ошибках сценария. После того, как я включил опцию «Показывать уведомление о каждой ошибке сценария», ошибки вдруг исчезли, а кнопки Викификатора появились. Не уверен, что здесь есть связь (после отключения опции кнопки всё равно остались), но тем не менее. --Claymore 08:50, 27 января 2009 (UTC)[ответить]
  • У меня в IE6 есть кнопка Викификатора, не знаю в чём может быть проблема. —AlexSm 19:29, 23 февраля 2009 (UTC)[ответить]
  • ✔ Предположительно исправлено этой правкой. —AlexSm 02:58, 24 марта 2009 (UTC)[ответить]

Сейчас добавлена для захвата в ссылки слова "год", но забыли про слово "век", которое тоже, по идее, надо бы захватывать в ссылки. -- AVBtalk 15:28, 22 февраля 2009 (UTC)[ответить]

Да, хорошая идея. Я пока предполагаю такие варианты замены:
  • [[XX]] век → [[XX век]]
  • [[20 век]] → [[XX век]]
  • 20 век → XX век
putnik 16:21, 22 февраля 2009 (UTC)[ответить]
  • Я думаю, не стоит слишком усложнять. Сейчас latitudebot начал заниматься исправлением кириллицы в римских числах и заменой арабских чисел перед словом "век" (в разных формах) на римское число, так что в викификаторе можно заниматься только прямым захватом (аналогично слову "год") слова "век" к римскому числу. (Почти) regexp: "(\[\[[IVXMDLC]+)\]\][  ]век" → "\1 век\]\]". Причём под   здесь понимается и уникодный знак, и соответствующий тег. (Кстати, викификатор сейчас, кажется, необрабатывает случай неразрывного пробела межд "год" и [[1234]]?). -- AVBtalk 19:35, 22 февраля 2009 (UTC)[ответить]

бага с дефис/тире[править код]

Во фрагменте "Минск: Вышэйшая школа, 1977. −− 366 с." не происходит викификации. Если я правильно понимаю, тут какой-то не-такой дефис - после перепечатывания дефиса викификация для этого фрагмента начинает работать. -- AVBtalk 08:58, 28 февраля 2009 (UTC)[ответить]

Это знак минуса. Он Викификатором в подобных случаях не обрабатывается. — putnik 02:10, 23 марта 2009 (UTC)[ответить]

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

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

txt = txt.replace(/\[\[((\d+)(?: год в [\wa-яёА-ЯЁ ]+\|\2)?)\]\][\u00A0 ](год[а-яё]*)/g, '[[$1\u00A0$3]]')

Так как замена не особо критичная, не хочется добавлять её отдельной правкой. К тому же, возможно у кого-то возникнут возражения. — putnik 14:56, 7 марта 2009 (UTC)[ответить]

Если ещё коротко объяснишь, что эта замена будет делать, то возражения возможно возникнут ;-) — Obersachse 15:20, 7 марта 2009 (UTC)[ответить]
Меняет «[[2009 год в <теме>|2009]] году» на «[[2009 год в <теме>|2009 году]]». — putnik 19:13, 7 марта 2009 (UTC)[ответить]

Не викифицируются сокращения[править код]

Есть такой фрагмент:

уже более 120 млн таких устройств

Этот фрагмент не викифицируется (не убирается точка после "млн"). Если убрать пробел после 120 и добавить его опять, викификация начинает работать. -- AVBtalk 00:39, 14 марта 2009 (UTC)[ответить]

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

ОК-650В викифицируется в ОК-650В ([[ОК-650|ОК-650В]] => [[ОК-650]]В), что не очень хорошо сказывается на оформлении. --Smolov.ilya 14:26, 17 марта 2009 (UTC)[ответить]

пожелание: захват хвоста в ссылках с трубой[править код]

Допустим, есть такая ссылка: [[abc|de]]f (обычно получается после подстановки вида [[de]]f на [[de (значения)|de]]f). Я полагаю, стоит захватывать хвост в ссылку (чтобы получалось [[abc|def]]) - как минимум для того, чтобы не мешать спелчеку). -- AVBtalk 12:24, 22 марта 2009 (UTC)[ответить]

✔ Добавлено.putnik 02:20, 23 марта 2009 (UTC)[ответить]

Точка после "г" в сокращении "год"[править код]

Коллеги, раньше, кажется, такого не было, а теперь викификатор убивает точку после "г" в конструкциях вида "В 1997 г. случилось то-то", если номер года не викифицирован (то есть "В [[1997]] г. случилось то-то" обрабатывается корректно). Не обсуждая вопрос о том, всегда ли номер года должен быть гиперссылкой, - полагаю, что такая автозамена не идёт на пользу делу. Андрей Романенко 22:29, 24 марта 2009 (UTC)[ответить]

  • Тут, полагаю, дело в другом - викификатор здесь путает "год" и "грамм". Точно так же, как он не может различить секунды ("5 с") и страницы ("5 с."). Изменение случилось, возможно, потому, что сейчас потихоньку добавляется распознование неразрывных пробелов (в данном случае, добавляемый самим же викификатором) в дополнение к обычному пробелу. -- AVBtalk 22:43, 24 марта 2009 (UTC)[ответить]
Как по мне - лучше граммы и секунды с точкой, чем годы и страницы без точки. И уж всяко я не уверен, что граммов и секунд в Википедии больше, чем годов и страниц. Проще говоря, коль скоро нельзя без вмешательства человека определить, что такое 900 г<.> - граммы или годы, - следует обработку подобных вещей викификатором отключить. Андрей Романенко 00:21, 25 марта 2009 (UTC)[ответить]
  • Я решаю эту проблему более кардинально - (почти) везде заменяя "г." на "год" (в соответствующем склонении, разумеется). -- AVBtalk 00:46, 25 марта 2009 (UTC)[ответить]
Ну это всё прекрасно - но это требует просмотра глазами примерно всех статей в Википедии. Нельзя ли всё-таки отключить в Викификаторе это действие? Андрей Романенко 01:30, 25 марта 2009 (UTC)[ответить]
Я тоже за то, чтобы не убирать точки после «г» и «с». — putnik 06:27, 25 марта 2009 (UTC)[ответить]
Поддерживаю. Не знаю, нужна ли точка после "с" (секунда), но, например, после равноценного "сек." она ставится. Надо глянуть правила DSR|Open 11:59, 29 марта 2009 (UTC)[ответить]
После секунды не нужна, но нужна после страницы. Поэтому тоже иногда убирается там, где должна быть. — putnik 13:18, 29 марта 2009 (UTC)[ответить]
А можете дать ссылку, где об этом сказано? DSR|Open 13:37, 29 марта 2009 (UTC)[ответить]
Вот, нашел: точны должны быть DSR|Open 14:05, 29 марта 2009 (UTC)[ответить]
Однако в соответствии с ГОСТ 8.417-2002 после обозначений единиц величин точка не ставится. Solon 15:18, 29 марта 2009 (UTC)[ответить]
Насколько я понимаю, словарь не противоречит ГОСТу: в математических текстах, чтобы убрать мусор, точки не ставятся, а в обычных текстах - ставятся. Сейчас гляну в энциклопедию DSR|Open 15:25, 29 марта 2009 (UTC)[ответить]
В СЭС "с" дается без точки. Интересно, что в правилах русского языка [1] говорится, что точки не ставятся после "стандартных сокращенных обозначений метрических мер", однако, судя по словарю РАН [2], единицы времени таковыми "стандартными" не считаются. DSR|Open 15:36, 29 марта 2009 (UTC)[ответить]
Я к тому, что в правилах оформления статей есть ссылка на этот ГОСТ. Практически всегда, как выпадает нужда писать сокращения, это делается в том случае, когда речь идёт о сокращённом обозначении физической или иной величины при числе, - это регламентируется ГОСТом. В других случаях секунду можно бы сокращать как "сек.", но обычно такие слова не сокращают вовсе. Solon 07:39, 1 апреля 2009 (UTC)[ответить]
✔ Убрано.putnik 13:18, 29 марта 2009 (UTC)[ответить]

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

В этой правке (в последнем абзаце) убрана точка в конце предложения, когда следующее предложение начинается с цифры. Можно добавить и этот случай в исключения? -- AVBtalk 15:08, 11 апреля 2009 (UTC)[ответить]

  • невтмемный (?) Вопрос: викификатор меняет слово изображение на файл, это новый стандарт на серверах викимидеа? Есть ли смысл пройтись по всей рувики и менять изображение на файл?--F a r i k 16:57, 11 апреля 2009 (UTC)[ответить]
  • это новый стандарт - да. Теперь это пространство называется именно так. Есть ли смысл пройтись - нет. Зачем плодить лишние правки? Само со временем всё заменится. -- AVBtalk 18:01, 11 апреля 2009 (UTC)[ответить]

Подстановочный Шаблон:Ударение[править код]

Не знаю, по месту ли обращаюсь, но: не первый раз замечаю, что при употреблении мною в статье подстановочного шаблона:Ударение ({{подст:ударение}}: пример аа́а) следом обязательно следует чья-нибудь правка -- заменяются поставленные мною знаки ударения на (на мой взгляд) такие же. Видимо, подставленные мною знаки ударения не соответствуют каким-то нормам? В чём может быть моя ошибка? Какие могут быть рекомендации? С уважением, --Borealis55 15:44, 10 января 2009 (UTC)[ответить]

Пример-то можно привести? DSR|Open 16:50, 10 января 2009 (UTC)[ответить]
Вот самый свежий. --Borealis55 15:32, 15 января 2009 (UTC)[ответить]
Честно говоря, довольно интересно получается. У вас при редактировании ударение стояло НАД буквой "а", а должно быть по́сле. Даже не обращал внимание DSR|Open 16:44, 15 января 2009 (UTC)[ответить]
Я поступаю просто: 1. Курсор ЗА букву, на которую должно падать ударение. 2. Клик по {{подст:ударение}} (как, наприме́р, здесь). Как это сейчас выглядит у Вас? --Borealis55 21:47, 15 января 2009 (UTC)[ответить]
А по-другому нельзя. Естественно, я тоже ставлю курсор за букву ударения и ставлю "Подст" DSR|Open 10:03, 21 января 2009 (UTC)[ответить]
И за моей следует правка другого Участника. То есть, он считает, что я поставил ударение не по правилам, не так как нужно. Что-то не то... --Borealis55 10:31, 21 января 2009 (UTC)[ответить]
Я написал участнику. Других объяснений у меня нет DSR|Open 11:41, 21 января 2009 (UTC)[ответить]

Похоже, участник заменил букву «a» и знак ударения на один диакритический знак «á». Мне кажется, так не стоило делать. В любом случае, Викификатор тут вроде бы ни при чём. —AlexSm 19:03, 23 февраля 2009 (UTC)[ответить]

Продолжается с завидным постоянством. Я уже не обращаю внимания. --Borealis55 19:56, 23 февраля 2009 (UTC)[ответить]
Я бегло проглядел вклад этого участника, не нашёл больше ни одной такой замены со времени той правки (16 января). —AlexSm 20:09, 23 февраля 2009 (UTC)[ответить]
Это другие, и мне кажется, это происходит без их участия. В частности, Bff ещё в июле говорил мне, что дело, видимо, в Викификаторе. Cantor тоже, по-моему, исправлял механически. Но это было давно, сейчас диффа представить не могу, а последние по времени были на прошлой неделе, сейчас пробежался — не нашёл, но как только — так сразу. С уважением, --Borealis55 21:03, 23 февраля 2009 (UTC)[ответить]


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

txt = txt.replace(/(П|п)редставляет из себя/g, '$1редставляет собой')

Обсуждение здесь Википедия:Запросы к ботоводам#представляет из себя → представляет собой —Tat1642 12:07, 9 марта 2009 (UTC)[ответить]

Наверное лучше так?
txt = txt.replace(/(П|п)редставля(л|ла|ли|ет|ть) из себя/g, '$1редставля$2 собой')
Obersachse 14:42, 9 марта 2009 (UTC)[ответить]

Посмотрел я тут и понял, что для такого AWB недостаточно. Нужно ещё добавить

txt = txt.replace(/(Б|б)англадеш(ь|а|у|ем|е)/g, '$1англадеш')

—Tat1642 16:15, 9 марта 2009 (UTC)[ответить]

  • Лично я против любых орфозамен в Викификаторе пока не будет предложено способа сделать так, чтобы они не затрагивали цитаты. — putnik 17:01, 9 марта 2009 (UTC)[ответить]
    Приведите мне пример цитаты с неправельным падежом слова Бангладеш =) —Tat1642 17:10, 9 марта 2009 (UTC)[ответить]
    Вполне может всплыть в речи кого-нибудь из наших политиков, журналистов и прочих «активистов». — putnik 17:16, 9 марта 2009 (UTC)[ответить]
    Любую речь на письме нужно исправлять. А вот "представляет из себя" НЕ ошибка. Просто для официально-делового и публицистического стиля (в том числе для Википедии) лучше писать "представляет собой". Автозамена во втором случае НЕ нужна DSR|Open 16:43, 11 марта 2009 (UTC)[ответить]
    Есть ещё один момент: добавлять все орфозамены в Викификатор — это как стрелять по воробьям из пушки. Случаев, когда надо заменять, единицы, а Викификатор будет проверять правильность постоянно (а он и так не быстро работает на больших текстах). Тут, возможно, лучше будет сделать гаджет для исправления орфографии. — putnik 01:52, 23 марта 2009 (UTC)[ответить]

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

111 —

  • 222.

333

  • 444.

При викификации этого фрагмента (сильно упрощённый пример реального текста) викификатор вставляет два лишних пробела перед "222". -- AVBtalk 23:36, 15 марта 2009 (UTC)[ответить]

Я не знаю, где ошибка. Надеюсь, кто-нибудь найдёт. — putnik 02:07, 23 марта 2009 (UTC)[ответить]
  • Намёк понял, ошибку нашёл. Для воспроизведения ошибки достаточно одного элемента списка и затем строчки из ровно одного пробела. Проблема заключается в работе функции hideExpr в текущей версии: она сперва находит все вхождения того, что нужно спрятать, а потом по одному их прячет. В результате при получении регекспа /^ .*/ для спрятывания пустых строк функция находит одинокий пробел на отдельной строке, а потом при замене находит и заменяет уже другой пробел, выше по тексту. Затем Викификатор вставляет пробел между * и последующим непробелом. Та же проблема была описана выше с заголовком. Собираюсь заменить функцию на новый вариант, который находит и сразу меняет то, что нужно спрятать. —AlexSm 02:58, 24 марта 2009 (UTC)[ответить]
function hideExpr(expr){
 txt = txt.replace(RegExp(expr, 'mgi'), function(ma){
   hidden[++hidIdx] = ma
   return '\x01' + hidIdx + '\x02'
 })
}

AlexSm 02:58, 24 марта 2009 (UTC)[ответить]

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

Предлагаю сделать замену точки на запятую в тех случаях, когда очевидно, что мы имеем дело с числом: перед знаком процента, промилле, градуса, возможно каким-то ещё. Регексп примерно такой:

txt = txt.replace(/(\s\d+)\.(\d+[\u00A0 ][%‰°])/gi, '\1,\2');

putnik 16:51, 4 апреля 2009 (UTC)[ответить]

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

При викификации бла-бла 64.84 % происходит порча текста (он превращается в бла-бла�,�). Этот тестовый фрагмент я сформировал на основе вот этой правки. PS: Подозреваю, это результат последнего апдейта викификатора, в котором, вероятно, где-то допущена ошибка. -- AVBtalk 12:24, 21 апреля 2009 (UTC)[ответить]

Благодаря переходу на вспомогательную функцию r(), в своей локальной копии через добавление в функцию console.log(txt, r1) удалось легко проследить ошибку к коду «Dot → comma in numbers», добавленному в этой правке. Пока отключил. Также см. #Запятая в числах выше. —AlexSm 14:11, 21 апреля 2009 (UTC)[ответить]
Извиняюсь. Это не столько ошибка, сколько косяк по невнимательности. — putnik 21:29, 21 апреля 2009 (UTC)[ответить]

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

Объединено с темой «Подчёркивания в ссылках»

В Викификатор нужно добавить замену символов "_" в викиссылках на пробелы. — Dirl 06:05, 15 марта 2008 (UTC)[ответить]

А можно ещё что-нибудь такое?

txt = txt.replace(/\[\[([{\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u01ba\u01bc-\u01bf\u01c4-\u02ad\u0386\u0388-\u0481\u048c-\u0556\u0561-\u0587\u10a0-\u10c5\u1e00-\u1fbc\u1fbe\u1fc2-\u1fcc\u1fd0-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ffc\u207f\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133\u2134\u2139\ufb00-\ufb17\uff21-\uff3a\uff41-\uff5a ,\(\)\-]+)\|(\1)([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u01ba\u01bc-\u01bf\u01c4-\u02ad\u0386\u0388-\u0481\u048c-\u0556\u0561-\u0587\u10a0-\u10c5\u1e00-\u1fbc\u1fbe\u1fc2-\u1fcc\u1fd0-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ffc\u207f\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133\u2134\u2139\ufb00-\ufb17\uff21-\uff3a\uff41-\uff5a]+)\]\]/gi, '[[$2]]$3');

txt = txt.replace(/\[\[([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u01ba\u01bc-\u01bf\u01c4-\u02ad\u0386\u0388-\u0481\u048c-\u0556\u0561-\u0587\u10a0-\u10c5\u1e00-\u1fbc\u1fbe\u1fc2-\u1fcc\u1fd0-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ffc\u207f\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133\u2134\u2139\ufb00-\ufb17\uff21-\uff3a\uff41-\uff5a ,\(\)\-]+)\|(\1)\]\]/gi, '[[$2]]');

Это из вышеупомянутого скрипта, но немного починено. --Lockal 16:44, 3 апреля 2008 (UTC)[ответить]
Если перевести на русский:
[[(всё что может быть в заголовке)|(\1)]] меняем на [[\1]]
[[(всё что может быть в заголовке)|(\1)(все буквы)]] меняем на [[\1]]все буквы
--Lockal 18:38, 4 апреля 2008 (UTC)[ответить]
Вообщем, надо переписывать, не соответствует викиреалиям. Как исправлю, выложу сюда на обсуждение. — putnik 10:59, 23 февраля 2009 (UTC)[ответить]
Исходим из таких предпосылок:
$wgLegalTitleChars = "%!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+";
$linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюя]+)(.*)$/sDu';
Поэтому предлагается обе замены преобразовать в одну такую (сырой вариант, не тестился совсем):
txt = txt.replace(/\[\[ *([a-zа-я\u00A0-\u00FF %!\"$&'()*,\-.\/0-9:;=?\\@\^_`~]*) *\| *(\1)([a-zа-яё]*) *\]\]/gi, '[[$2]]$3');
Есть мнение, что «\x80-\xff» сильно не тру. Так что тестируем и дорабатываем. — putnik 12:01, 23 февраля 2009 (UTC)[ответить]
Потестил, исправил. Что думаете? — putnik 13:48, 23 февраля 2009 (UTC)[ответить]
  • Проверяем. [[1234|1234]] год, [[f|fa]] - ни тот, ни другой случай сейчас викификатором не меняются. (Уточняю: для этого я выделяю текст внутри nowiki и нажимаю кнопку викификатора). Случай [[1234]] год отрабатывает на ура, а [[1234]] век - опять нет. Кеш или что? -- AVBtalk 02:41, 24 февраля 2009 (UTC)[ответить]
    У меня работает. — putnik 10:16, 22 марта 2009 (UTC)[ответить]
  • Да, сейчас работает, видимо, в действие изменения викификаторе вступают как-то очень неспешно. А пример [[1234]] век был некорректный, тут должно было быть римское число. -- AVBtalk 12:08, 22 марта 2009 (UTC)[ответить]

Предлагаю добавить удаление подчёркиваний из внутренних ссылок:

while (/\[\[[^|]+.*_[^|]+.*\]\]/.test(txt))
         txt = txt.replace(/(\[\[[^|]+.*)_([^|]+.*\]\])/g, '$1 $2');

redmond barry 04:53, 10 июля 2008 (UTC)[ответить]

Тестирую обе замены, проблем пока нет. Как только найду время проверить код, добавлю. — putnik 11:02, 22 февраля 2009 (UTC)[ответить]
Есть большая вероятность, что такой скрипт что-нибудь сломает (AlexSm привёл пример с google: ссылками) и/или будет мешать в оформлении (например, если название предмета статьи правильно пишется именно с подчёркиванием). Предлагается сильно ограничить его область действия, например как-нибудь так:
while (/\[\[[^|:]*_[^|]*\|[^{}|[\]]\]\]/.test(txt))
  txt = txt.replace(/(\[\[[^|:]*)_([^|]*)\|([^{}|[\]])\]\])/g, '$1 $2')
Т. е. чтобы он изменял [[только этот текст|]] и то, когда нет никакого префикса. — putnik 16:32, 23 февраля 2009 (UTC)[ответить]
== Накопившиеся вопросы ==
  • Сегодня обнаружил, что викификатор между инициалами вставляет не неразрывные, а обычные пробелы.
  • ISBN
    • Необходимо убрать замену дефиса на тире.
    • Хорошо бы при викификации убирать двоеточие после ISBN — но только в тех случаях, когда после ISBN идёт код (чтобы не испортить обычную фразу, где ISBN употреблено как термин).

NBS 19:30, 2 апреля 2008 (UTC)[ответить]

== ISBN ==

Как оказалось, выше вопрос уже поднимался, но викификатор до сих пор портит ISBN, заменяя дефис на тире. Может кто-нибудь возьмется исправить? —LimeHat 11:19, 18 мая 2009 (UTC)[ответить]

+1. Викификатор портит конструкцию <code>ISBN 978-985-463-258-2</code> (взято из статьи Информационная безопасность). Я думаю, вполне очевидно, что более двух чисел подряд, разделённых дефисами, не могут быть диапазоном годов. -- AVBtalk 01:13, 28 июня 2009 (UTC)[ответить]

✔ Сделано в том, что касается ISBN: теперь двоеточие убирается, а затем ISBN вместе с номером прячется от последующей обработки. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]
Уточнение: спрятывание ISBN позже убрано. — AlexSm 18:55, 4 сентября 2009 (UTC)[ответить]
✔ Сделано: в проверке символа, который не должен следовать за вторым числом, к цифрам и латинским буквам добавлен дефис (который на клавиатуре). — AlexSm 18:55, 4 сентября 2009 (UTC)[ответить]

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

Если здесь нажать кнопку викификации, то дефис не заменится на тире. -- AVBtalk 21:32, 27 июля 2008 (UTC)[ответить]

PS: кстати, я уже несколько раз напоролся на то, что после правки каким-то участником, диф слишком большой. Я не стал углубляться, но судя по тому, что инициалы начинают расползаться по строкам, это как раз случай пропадания знаков неразрывных пробелов. -- AVBtalk 21:36, 27 июля 2008 (UTC)[ответить]

Это из-за того, что перед основной обработкой все http ссылки прячутся вместе с последующими пробелами. Если я правильно помню, иначе ссылки портились, вероятно получавшийся перед тире неразрывный пробел «прилипал» к ссылке. Сейчас вроде бы не прилипает, вероятно можно оставлять пробел на месте. —AlexSm 19:03, 23 февраля 2009 (UTC)[ответить]
Перед предыдущим ответом я похоже тестировал не в том пространстве. Как и раньше, неразрывный юникодный пробел прилипает к http ссылке, именно поэтому ссылку приходится прятать вместе с последующим пробелом. Конкретную ситуацию, описанную выше, мы исправим, за счёт более чёткого определения http ссылки (она не должна содержать <), но что делать в более общем случае http://www - слово пока неясно. —AlexSm 02:58, 24 марта 2009 (UTC)[ответить]
== викификация дефиса после тега ==

Конструкция вида

  • текст<ref>http://text</ref> - текст

не викифицируется (дефис не заменяется на тире). -- AVBtalk 19:27, 19 мая 2009 (UTC)[ответить]

✔ Сделано для этого конкретного случая, путём указания, что < не может быть частью ссылки. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

"и т.д." не викифицируется[править код]

Вот, попробуйте кнопку викификации в этой странице. -- AVBtalk 13:46, 29 июля 2008 (UTC)[ответить]

1) Просьба давать правильные ссылки. 2) Просьба давать конкретные примеры и объяснения, например: «исходный текст: xxx, после Викификатора: yyy, ожидаемый результат: zzz». 3) Если имелось в виду отсутствие в результате неразрывного пробела, то см. описание Викификатора: «… невидимый неразрывный пробел только в чётных пространствах, кроме пространства „Википедия:“…». —AlexSm 13:54, 29 июля 2008 (UTC)[ответить]
  1. правильные ссылки - пардон, там каким-то боком остался мусор от предыдущего варианта ссылки. Убрал мусор там и представляю ссылку ещё раз тут.
  2. объяснения - переходим в режим правки страницы, ссылку на которую я дал (или сразу кликайте здесь; нажимаем кнопку викификатора; видим, что "т.д." как было слипшимся, так и осталось слипшимся.
  3. в чётных пространствах - мне это ничего не говорит (я пока не очень разбираюсь в подобных тонкостях вики), но текст взят из страницы со статьёй и представлен в песочнице, которая вроде тоже как в том же пространства. -- AVBtalk 14:46, 29 июля 2008 (UTC)[ответить]
Чем плох вариант примера со ссылкой на версию страницы: после последующих правок страницы нельза будет увидеть изменения кнопкой «Внесённые изменения», потому что они всегда показываются по отношению к текущей версии страницы (даже если начать редактировать старую версию). Список пространств можно посмотреть например в выпадающем списке в списке наблюдения: «основное» - это #1, дальше по возрастанию, также см. Википедия:Пространство имён. В любом случае (повторю) неразрывные пробелы не добавляются там, где бывают обсуждения, исключительно из-за бага в Firefox 1.5 и 2, чтобы не создавать диффы с множеством отвлекающих «невидимых» изменений. —AlexSm 15:03, 29 июля 2008 (UTC)[ответить]
  • плох вариант со ссылкой на версию страницы - предложи(те) другой, более адекватный вариант представления примеров, иллюстрирующих правки, нежели через песочницу. Заводить для каждого нового бага новую же под-страницу под своей учёткой? Список пространств - ясно. где бывают обсуждения - про ограничения викификатора на страницах обсуждения я читал. Повторюсь: здесь не тот случай. бага в Firefox 1.5 и 2 - это с пропадающими уникодными знаками? Так я и сейчас постоянно встречаю гигантские дифы (после правок страниц другими участниками), которые вызваны, как я предполагаю, пропаданием этого уникодного знака. Как меня невидимость этого знака раздражает... :( -- AVBtalk 15:33, 29 июля 2008 (UTC)[ответить]
  • В примере выше после буквы «и» стоит юникодный неразрывный пробел, в соотв. регекспе Викификатора /и т\. ?д\./g такого не предусмотрено. Предлагаю исправить ситуацию, заменив пробел на \s в этом регекспе и в некоторых других. —AlexSm 02:58, 24 марта 2009 (UTC)[ответить]

Предлагаю добавить в викификатор случаи вида "и.т.д" (именно так, без последней точки), "и&nbsp;т.&nbsp;д" и "и т.&nbsp;д". -- AVBtalk 07:06, 1 сентября 2008 (UTC)[ответить]

Добавить как альтернативу последней точке перевод строки, или ещё какие-то возможные символы? —AlexSm 02:58, 24 марта 2009 (UTC)[ответить]
  • Я думаю, достаточно указать границу слова (вроде юы это тег \b). Если попытаться обобщить, то псевдокод искомого патерна, полагаю, должен (может) выглядеть как-то так (сорри за возможные ошибки и примитивизм, я не специалист по RE):
  • \bи(\s*|\s*\.\s*)т(\s*|\s*\.\s*)д(\s*\.|\b)
(суть хвоста: после "д" должны идти либо серия пробел с последующей точкой, либо, если этого нет, там должна быть "граница слова"). Сюда должны подпадать также конструкции вида "и т д", "и . т . д .". -- AVBtalk 18:42, 24 марта 2009 (UTC)[ответить]

✔ Заменил в регулярных выражениях типа «Т|т)\. ?е\.» пробелы на \s, что означает, что теперь там допускается и обычный пробел, и неразрывный пробел, и перевод строки. Указывать более широкие варианты с пропущенными точками пока не решаюсь. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

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

вернул из архива

Было бы хорошо, если бы викификатор убирал (невидимые) переносы. Пример текста: "В результате побеждённые получили редкую возмож­ность создавать свои боевые единицы в условиях менее жёстких ограничений, чем сами победители. Более того, если бы немцам удалось создать проект, уг­рожающий существующему равновесию сил, бывшим союзникам пришлось бы тратить драгоценный линкорный тоннаж на то, чтобы парировать такой выпад". В этом тексте есть два переноса, которые викификатор не убирает. -- AVBtalk 12:26, 6 сентября 2008 (UTC)

А зачем это надо? — putnik 23:56, 9 января 2009 (UTC)

Только сейчас заметил появление ответа (просто почти весь январь меня в вики не было), так что не мог ответить. Так вот, ответ просто: потому что невидимые управляющие знаки сбивают поиск. В конце концов, викификатор же убирает лишние пробелы, хотя это менее критично. PS: Ну и попутно надо бы убирать мусорный знак, который часто получается при копировании со страниц вики (см. тему про настройку awb на техническом форуме). PPS: Странно, что викификатор убирает лишние пробелы в середине строк, но не убирает хвостовые пробелы. -- AVBtalk 15:18, 22 февраля 2009 (UTC)[ответить]

Давайте это где-нибудь на форуме обсудим. Если поддержат хотя бы несколько человек, и не появится аргументов против, будем удалять. Я просто не готов оценить безвредность этого предложения, а посещаемость этой страницы явно не шкалит. — putnik 11:41, 23 февраля 2009 (UTC)[ответить]
  • на форуме - сколько угодно. ВП:Ф-Т#настройка awb. безвредность - (1) знаки переносов - это очевидный мусор, получающийся из-за копипасты со сторонних сайтов и из документов ворда. (2) Лишние (хвостовые) пробелы - очевидная головная боль при анализе дифов, когда неясно, что же очередной аноним изменил в тексте (а это не редкость), поскольку порбелцы в дифе не показываются. (3) Мусорный знак, который я упомянул на Ф-Т, парсером игнорируется, так что я всегда массово удаляю его (когда не забываю об этом и вижу в тексте). -- AVBtalk 14:16, 23 февраля 2009 (UTC)[ответить]
  • Я не против удаления лишних символов, только хотелось бы всё-таки как-то увидеть этот невидимый перенос, в каком месте текста смотреть? —AlexSm 14:46, 23 февраля 2009 (UTC)[ответить]
    Искать \u00AD. Думаю, его можно тупо вытравлять отовсюду, кроме ссылок, потому как формально он в именах разрешён. Относительно же запрета в названиях нужно подумать. С большой вероятностью он запрещён через глобальный Title blacklist, если нет — стоит в него внести. — putnik 16:32, 23 февраля 2009 (UTC)[ответить]
  • в каком месте текста смотреть - не знаю, как в других браузерах, а в опере этот перенос не показывается ни в редакторе, ни в дифе. Поскольку я "вытаскивал их архива" через диф, эти знаки не скопировались, но сейчас я скопировал заново уже напрямую и в дифе вы можете видеть, что некоторые слова стали красными из-за возврата в них знака переноса. Я напарываюсь на эти знаки и вижу их вполне наглядно, когда переношу текст в опенофис для проверки орфографии. кроме ссылок - в ссылках тоже его нужно вытравлять, ссылки с таким знаком являются такими же ошибочными (то есть таких имён не должно быть), как и ссылки с подменёнными лат/кир знаками. Нужно будет оставить запрос Михайле, чтобы его бот искал ссылки не только с лат/кир подменой, но и с этим знаком - хотя я сомневаюсь, что такие есть. -- AVBtalk 17:39, 23 февраля 2009 (UTC)[ответить]
    Я понимаю, что вы считаете такие ссылки некорректными, но движок их таковыми не считает. И если они не запрещены, то их нельзя удалять совсем без анализа (т. е. Викификатором, а не ботом). — putnik 17:44, 23 февраля 2009 (UTC)[ответить]
  • но движок - но позвольте, движок-то тут причём? Викификатором, а не ботом - я думаю, это тот случай, когда нет необходимости "анализа" - знак переноса не является ни печатным, ни отображаемым, и он не может быть частью имени. Это служебный знак для оформления текстов. То, что движок позволяет такие знаки в именах - можно назвать очевидным недосмотром. Вопрос только и исключительно в том, стоит ли сохранять ссылки с таким знаком, если есть страницы с соответствующими именами (если страниц нет и ссылка изначально красная, то и вопроса нет - ссылка ошибочна без всяких оговорок). Я думаю, покраснение ссылки в таких условиях - допустимая плата (а может быть, даже преимущество), особенно если учесть, что вряд ли в вики сейчас найдутся имена с этим знаком (хотя последнее - только моё предположение). -- AVBtalk 18:53, 23 февраля 2009 (UTC)[ответить]
  • Это Soft Hyphen, C2AD в UTF8. Его можно увидеть в окне редактирования (похоже во всех браузерах), если уменьшать ширину окна до тех пор, пока в этом месте не образуется перенос. Если символ использован в названии страницы, то он виден в заголовке окна браузера (на самом верху). Вот список статей с этим символом в названии: 4 статьи и 6 перенаправлений. Предлагаю после чистки этого списка добавить soft hyphen символ в Titleblacklist и действительно удалять его Викификатором. —AlexSm 19:03, 23 февраля 2009 (UTC)[ответить]

PS: Для пробы, вот три ссылка: Москва, Мос‎ква и Мос­ква. Первая ссылка нормальная, во второй в середине мусорный знак, в третьей - знак переноса. Хотелось бы, если это можно сконфигурировать, чтобы парсер игнорировал знак переноса так же, как он игнорирует мусорный знак. Тогда и вопрос автоматического его удаления будет менее острым. А так, с учётом того, что знак переноса не виден, то это может быть вообще использоваться для вандализма. -- AVBtalk 19:09, 23 февраля 2009 (UTC)[ответить]

«Мусорный знак» — это «DirMark», специальный LTR символ (см. en:Bi-directional text). Я упоминал его в mediazilla:14881 (со словами «minor inconvenience»), но в итоге на странице вклада его так и оставили. Пока что согласен убирать его из ссылок, надеюсь это не вызовет никаких проблем. —AlexSm 19:29, 23 февраля 2009 (UTC)[ответить]
  • Ещё один аргумент в пользу убирания хвостовых пробелов викификатором - пример правки, которая сбивает с толку, "что же там изменилось" (ведь дифы пробелы не показывают), если олько не знать (догадываться!), что же там изменилось. -- AVBtalk 06:44, 6 апреля 2009 (UTC)[ответить]
  • ✔ Частично добавлено удаление Soft Hyphen, LTR и RTL из ссылок. Обрабатываются случаи, когда перед знаком в ссылке не встретилось двоеточие. Собственно, вопрос: могут ли удаления этих знаков сбить какие-нибудь интерлинки? Если нет, применим ко всем ссылкам. — putnik 12:25, 20 апреля 2009 (UTC)[ответить]
    Очень вряд ли, а если и встретится, то это будет ошибка в другом разделе. Если вдруг такое обнаружится - тогда и будем решать. —AlexSm 20:23, 20 апреля 2009 (UTC)[ответить]

Вероятно уберу упоминание двоеточия чуть позже. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

✔ Убрал. — AlexSm 18:55, 4 сентября 2009 (UTC)[ответить]

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

Перенесено со страницы ВП:Ф-Т#викификатор?.

Вот порезанный фрагмент из статьи Портрет:

Существовали и другие аспекты: «Портреты … „персоны“ свои и …, „портретные“ комнаты, … быта„.<ref name="рус"/>

[[:Файл:Kustodiev Merchants Wife.jpg|thumb|

Борис Кустодиев. “Купчиха за чаем», 1918.

]]

Обратите внимание на неправильные кавычки-лапки в конце цитаты и в начале названия в файл-ссылке, которые ставит викификатор вместо ёлочек. Это бага викификатора или что-то ещё? Можно это дело поправить? -- AVBtalk 19:23, 8 февраля 2009 (UTC)

Эта бага по прежнему не исправлена - если викифицировать процитированный фрагмент, кавычка не исправляется. Так же, у меня всё ещё не действует оптимизация ссылок и захват слова "век" в ссылки. Ну и, я не вижу, чтобы изменения (не исправления ошибок) в викификаторе нашли отражение на странице документации. -- AVBtalk 01:17, 25 февраля 2009 (UTC)[ответить]

Ещё одна статья, где я напоролся на эту же проблему с кавычками - оклад иконы. -- AVBtalk 08:58, 28 февраля 2009 (UTC)[ответить]

Вроде бы в данный момент цитата выше уже обрабатывается нормально, хотя я не в курсе, что конкретно изменилось. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]
  • Сей момент попробовал викифицировать цитату из статьи выше - кавычки по-прежнему викифицируются неправильно (вместо
  • ».<ref name="рус"/> ... [[Борис Кустодиев]]. ''«
получается
  • „.<ref name="рус"/> ... [[Борис Кустодиев]]. ''“
) -- AVBtalk 21:51, 3 сентября 2009 (UTC)[ответить]
✔ Исправлено: кавычки в примере выше должны нормально викифицироваться в версии 2009-09-04/03 (как узнать версию — см. отдельную тему ниже). — AlexSm 18:55, 4 сентября 2009 (UTC)[ответить]

Не так уж редко мне попадается использование тега br в форме </br>. Почему бы не поддержать эту форму наравне с формой <br>? -- AVBtalk 03:47, 23 апреля 2009 (UTC)[ответить]

Думаю, вполне можно добавить в соответствующей регексп \/?AlexSm 04:12, 23 апреля 2009 (UTC)[ответить]
✔ Добавлено. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

Фрагмент "и т.д." не викифицируется. Как я понимаю, потому, что там неразрывный пробел. PS: Видимо, это нужно считать намёком на то, что нужно активнее заменять знак пробела в регэкспах на пару пробел+неразрывный пробел или, наверное, вообще на \s. -- AVBtalk 15:54, 4 мая 2009 (UTC)[ответить]

Вроде бы сделано. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

Заменяет <hr /> на ----, даже если hr находится в одной линии с текстом. Пример неправильной обработки можно посмотреть здесь. --Lockal 08:50, 5 мая 2009 (UTC)[ответить]

✔ Исправлено: теперь hr заменяется на ---- только в начале строки. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

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

В примере ООО «Рога и копыта», если после ООО стоит неразрывный пробел, после викификатора получается — ООО "Рога и копыта". Permjak 17:45, 29 июня 2009 (UTC)[ответить]

Ещё пример с кавычками:

  • «Наиболее важные ссылки следует приводить в разделе ''«См. также»''»

В результате викификации получается:

  • «Наиболее важные ссылки следует приводить в разделе »См. также""

-- AVBtalk 20:06, 7 июля 2009 (UTC)[ответить]

✔ Исправлено через добавление апострофа в соотв. регулярное выражение. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

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

Викификатор перед тире ставит обычные пробелы — а не неразрывные. --Mercury 15:37, 13 августа 2009 (UTC)[ответить]

  • Во-первых, новые темы нужно добавлять с помощью ссылки "+" сверху страницы. Тогда бы ваша тема оказалась внизу, а не вверху, и также поле описания автоматически оказался бы заголовок вашей новой темы, а не той, внутри которой вы начали создавать новую тему.
  • Во-вторых, без дифа, где происходит сбой викификатора, или без фрагмента текста, на котором викификатор сбоит и на котором этот сбой могут повторить другие участники, обсуждать просто нечего, поскольку у других участников викификатор работает. -- AVBtalk 04:31, 14 августа 2009 (UTC)[ответить]

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

Чтобы потом не забыть исправить: diff. — putnik 21:49, 17 августа 2009 (UTC)[ответить]

✔ Исправлено. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]
== Некорректная замена некоторых HTML-тегов ==

До викификации:

имеется:

  • пункт 1
  • пункт 2

и т. д.

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

имеется:

  • пункт 1
  • пункт 2

и т. д.

Ещё хуже обстоит с викификацией тега <em> с параметром style

До викификации:

Прямые ссылки на материалы, требующие для их просмотра установки внешних приложений типа Flash, Java и др., — за исключением случаев, когда статья посвящена именно такого рода медиа-файлам. Если такие ссылки всё же приводятся в статье, они должны сопровождаться соответствующим комментарием. - не принятый пункт

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

Прямые ссылки на материалы, требующие для их просмотра установки внешних приложений типа Flash, Java и др., — за исключением случаев, когда статья посвящена именно такого рода медиа-файлам. Если такие ссылки всё же приводятся в статье, они должны сопровождаться соответствующим комментарием.не принятый пункт

NBS 11:18, 25 августа 2009 (UTC)[ответить]

✔ Исправлено: теперь теги заменяются на соотвествующий викикод только при отсутствии атрибутов, и если они находятая на одной строке. Если можно, давайте пожалуйста примеры покороче. — AlexSm 20:05, 3 сентября 2009 (UTC)[ответить]

Викификация в бета-версии :: где?[править код]

Не нашёл, куда лучше написать... Вопрос один: как провести викификацию в новом бета-интерфейсе? не нашёл нужной кнопки... V7r 17:06, 20 августа 2009 (UTC)[ответить]

Пока что Викификатор нельзя вызвать из «улучшенной панели редактирования». Можно отключить эту панель в своих настройках на вкладке «редактирование», не отключая остальные изменения бета-интерфейса. — AlexSm 20:34, 24 августа 2009 (UTC)[ответить]
Спасибо. — V7r 17:15, 25 августа 2009 (UTC)[ответить]

У меня в Opera 9.27 викификатор вообще перестал работать (в Opera 10 работает). NBS 12:20, 4 сентября 2009 (UTC)[ответить]

Это видимо вот это, только что исправлено. — AlexSm 13:43, 4 сентября 2009 (UTC)[ответить]
Всё равно не работает. NBS 14:38, 4 сентября 2009 (UTC)[ответить]
Я с тех пор (в 13:54) откатил вообще к старой версии, которая была более 4х месяцев, так что это или кеш браузера, или что-то ещё. Чтобы сказать точнее, следует в Opera зайти в меню Tools-Advanced-Error Console (в 9.27 могло быть слегка по-другому) и там будет показана конкретная JavaScript-ошибка. — AlexSm 14:48, 4 сентября 2009 (UTC)[ответить]
Сейчас работает; почему не работал в 14:.. — не знаю (кеш чистил). NBS 15:21, 4 сентября 2009 (UTC)[ответить]

Сейчас снова включена новая версия (2009-09-04/03). — AlexSm 18:55, 4 сентября 2009 (UTC)[ответить]