MediaWiki:Gadget-wfTyposUpdate.js: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
м fix
удалять замены, где строка поиска начинается на \b, но мы не смогли его сэмулировать
Строка 28: Строка 28:
r(/^\\b\((.+?)\|(.+?)\)([*+?])/gm, '((?:^|\\s)(?:$1|$2)$3)');
r(/^\\b\((.+?)\|(.+?)\)([*+?])/gm, '((?:^|\\s)(?:$1|$2)$3)');
r(/^\\b\((.+?)\|(.+?)\)/gm, '((?:^|\\s)(?:$1|$2))');
r(/^\\b\((.+?)\|(.+?)\)/gm, '((?:^|\\s)(?:$1|$2))');

r(/^(.*\\b\(*([A-ZА-ЯЁa-zа-яё]|\\w).*)$/gm, ''); // clear all that we can't emulate
// clear all that we can't emulate
r(/^(.*\\b\(*([A-ZА-ЯЁa-zа-яё]|\\w).*)$/gm, '');
r(/^\\b.*$/gm, '');

r(/\)\?\\b\x01/gm, '|)(?=[^A-ZА-ЯЁa-zа-яё]|$)\x01');
r(/\)\?\\b\x01/gm, '|)(?=[^A-ZА-ЯЁa-zа-яё]|$)\x01');
r(/\\b(.*\x01)/gm, '(?=[^A-ZА-ЯЁa-zа-яё]|$)$1');
r(/\\b(.*\x01)/gm, '(?=[^A-ZА-ЯЁa-zа-яё]|$)$1');

Версия от 09:55, 26 марта 2013

function TyposToJs () {
 'use strict';

 var wpTextbox1 = document.editform.wpTextbox1,
     txt = wpTextbox1.value;

 function r (r1, r2) {
  txt = txt.replace(r1, r2);
 }

 // Clear
 r(/^(.|\n)+?<source lang="xml">/, '');
 //r(/<\/source>(?!(.|\n)+<\/source>)(.|\n)+?$/, ''); // for all replaces
 r(/\n=+\s*Сокращения(.|\n)+?$/, '');
 
 r(/<source lang="xml">/g, '');
 r(/<\/source>/g, '');
 r(/<pre>(.|\n)*?<\/pre>/g, '');
 r(/^=+.*=+$/gm, '');

 r(/^<Typo word=".+?" find="/gm, '');
 r(/" replace="/g, '\x01');
 r(/" \/>\s*?(<!--.*?-->)?/g, '');

 // \b conversion
 r(/^\\b\((.)\|(.)\)([*+?])/gm, '((?:^|\\s)[$1$2]$3)');
 r(/^\\b\((.)\|(.)\)/gm, '((?:^|\\s)[$1$2])');
 r(/^\\b\((.+?)\|(.+?)\)([*+?])/gm, '((?:^|\\s)(?:$1|$2)$3)');
 r(/^\\b\((.+?)\|(.+?)\)/gm, '((?:^|\\s)(?:$1|$2))');

 // clear all that we can't emulate
 r(/^(.*\\b\(*([A-ZА-ЯЁa-zа-яё]|\\w).*)$/gm, '');
 r(/^\\b.*$/gm, '');

 r(/\)\?\\b\x01/gm, '|)(?=[^A-ZА-ЯЁa-zа-яё]|$)\x01');
 r(/\\b(.*\x01)/gm, '(?=[^A-ZА-ЯЁa-zа-яё]|$)$1');
 r(/\\b(.*\x01)/gm, '(?=[^A-ZА-ЯЁa-zа-яё]|$)$1');

 // Wrap into function r()
 r(/^(.+)/gm, 'r(/$1');
 r(/\x01/g, '/g, \'');
 r(/(.+)$/gm, '$1\');');

 // Empty lines
 r(/\n+/g, '\n');
 r(/^[\n\r]+/, '');

 wpTextbox1.value = txt;
}

if (wgPageName === 'Википедия:AutoWikiBrowser/Typos' && (wgAction === 'edit' || wgAction === 'submit')) {
 mwCustomEditButtons['typostojs']  = [
  function () { TyposToJs(); },
  'commons/a/a2/TrFlameButton.png',
  'Конвертер орфографических правил из формата AWB в JS'
 ];
}