Обсуждение Википедии:Викификатор/Архив/2013Здесь находятся завершившиеся обсуждения. Просьба не вносить изменений.
Вложенные кавычкиСледующая фраза не обрабатывается: и в своей статье «Бабизм Бабеля в "Красной нови"» (1924) --Ignatus 15:01, 7 февраля 2013 (UTC)
Замена HTML-мнемоник и кодовfromCharCodeПока что убрана замена r(/&#(\d+);/g, function(n,a){return String.fromCharCode(a)}) //́
как выяснилось, не все символы заменяются правильно, в частности, & #151;, кстати заменямый в коде ниже. Участник Kalan обещал попробовать исправить. При возвращении это замены перед ней нужно будет вставить if (wgNamespaceNumber==10) hide('|')// |
чтобы не заменять это в шаблонах (обсуждается выше). — AlexSm 20:05, 3 сентября 2009 (UTC) УмляутыМожно ли добавить замену html умляутов (например ü [ü]) на соответствующие utf cимволы (т.е. ü) викификатором? С уважением, Amishaa (обс) 22:27, 8 апреля 2011 (UTC)
Вариант решенияДумаю, стоит все текущие замены символов поменять на что-нибудь универсальное вроде такого: r(/&(#x[0-9a-f]{2,4}|#[0-9]{3,4}|[0-9a-f]{2,8});/gi, function(s){
var t = document.createElement('textarea')
t.innerHTML = s
var c = t.value
if (c.length == 1 && c.charCodeAt(0) > 127)
return c
return s
}
— putnik 02:41, 7 октября 2011 (UTC)
r(/&#x([0-9a-f]{1,4});/gi, function(n,a){return String.fromCharCode(eval('0x'+a.substr(-4)))});
r(/©/gi,'©');
r(/®/gi,'®');
r(/§/gi,'§');
r(/€/gi,'€');
r(/¥/gi,'¥');
r(/£/gi,'£');
r(/°/gi,'°');
r(/™/gi,'™');
r(/…/gi,'…');
r(/±/gi,'$1±');
Обработка вложенных шаблоновПросьба сопровождающих взглянуть на этот набор правок. Полностью скрывает шаблоны от обработки с учётом их вложенности. Wizardist обс +вкл 16:15, 6 января 2013 (UTC)
function hideTemplates() {
'use strict';
var lvl = 0,
hash = [],
tpl = {},
i = 0,
left,
right;
while (true) {
left = txt.indexOf('{{', i);
right = txt.indexOf('}}', i);
if (left === -1 && right === -1) {
break;
}
if (left !== -1 && (left < right || right === -1)) {
if (!(lvl++)) {
tpl.left = left;
}
i = left + 2;
}
else {
if (!(--lvl)) {
tpl.right = right + 2;
hash.push(tpl);
tpl = {};
lvl = 0;
}
i = right + 2;
}
}
for (i = hash.length - 1; i >= 0; --i) {
tpl = txt.substring(hash[i].left, hash[i].right);
txt = txt.substring(0, hash[i].start) + '\x01' + hidden.push(tpl) + '\x02' + txt.substr(hash[i].end);
}
}
function hideTemplates() {
'use strict';
var pos = 0,
stack = [],
tpl,
left,
right;
while (true) {
left = txt.indexOf('{{', pos);
right = txt.indexOf('}}', pos);
if (left === -1 && right === -1 && !stack.length) {
break;
}
if (left !== -1 && (left < right || right === -1)) {
stack.push(left);
pos = left + 2;
}
else {
left = stack.pop();
if (typeof left === 'undefined') {
if (right === -1) {
pos += 2;
continue;
}
else {
left = 0;
}
}
if (right === -1) {
right = txt.length;
}
right += 2;
tpl = txt.substring(left, right);
// Сюда можно добавить функцию обработки параметров
txt = txt.substring(0, left) + '\x01' + hidden.push(tpl) + '\x02' + txt.substr(right);
pos = right - tpl.length;
}
}
}
КавычкиЧто это он надумал вытворить с фигурными кавычками? Нам такого не надо. †Йо Асакура† ♠бла-бла♠ 19:49, 25 февраля 2013 (UTC)
Ошибка при обработке слова «тождественны»Викификатор заменяет слово «тождественны» словом «тождетственны», что не есть хорошо. --Bff 23:03, 23 марта 2013 (UTC)
Ошибка при обработке словосочетания «В Чёрной Мезе»По состоянию на 27.11.2012 текст статьи Half-Life «В Чёрной Мезе» при викификации заменяется на «ВЧёрной Мезе» (замечено при предпросмотре обработанного текста). --Sabunero 13:37, 27 ноября 2012 (UTC)
Планируемое обновлениеНаконец дошли руки заняться Викификатором, поэтому заранее предупреждаю, что скоро будет обновление, в которое войдут #Замена HTML-мнемоник и кодов и #Обработка вложенных шаблонов. Заодно добавлен
|
Portal di Ensiklopedia Dunia