MediaWiki:Gadget-wfTyposUpdate.js

ХӀара гӀирс Википеди чуьра бу — маьрша энциклопеди

Билгалдаккхар: Ӏалашйинчул тӀаьхьа хийцамаш га браузеран кэш цӀанйан йезаш хила мега.

  • Firefox / Safari: Shift тӀетаӀийна йитина, гӀирсийн панелан тӀера тӀетаӀайе Карлайаккха йа Ctrl+F5 йа Ctrl+R (⌘+R Mac тӀехь)
  • Google Chrome: тӀетаӀайе Ctrl+Shift+R (⌘+Shift+R Mac тӀехь)
  • Internet Explorer / Edge: тӀетаӀийна йитина Ctrl, тӀетаӀайе Карлайаккха йа тӀетаӀайе Ctrl+F5
  • Opera: тӀетаӀайе Ctrl+F5.
( function ( $, mw ) {
	'use strict';

	var prefix = '/*\n\
Этот скрипт формируется из содержимого страницы [[Википедия:AutoWikiBrowser/Typos]].\n\
Для обновления cкопируйте текст из поля по ссылке:\n\
https://ru.wikipedia.org/?title=Project:AutoWikiBrowser/Typos&action=edit&withgadget=wfTyposUpdate\n\
*/\n\
\n\
window.wfPlugins = window.wfPlugins || [];\n\
window.wfPlugins.push(function(txt,r){';
	var postfix = '});';

	var typosToJs = function() {
		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, '' );
		r( /" \/>\s*?/g, '' );
		r( /^\s*<!--.*?-->\s*$/gm, '' );

		// \b conversion
		r( /^\\b(\(\?!.+\))?\((.)\|(.)\)([*+?])/gm, '((?:^|\\s)$1[$2$3]$4)' );
		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|$3)$4)' );
		r( /^\\b(\(\?!.+\))?\((?!\?!)(.+?)\|(.+?)\)/gm, '((?:^|\\s)$1(?:$2|$3))' );

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

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

		// Wrap into function r()
		r( /\\w/g, '[А-ЯЁа-яё]' );
		r( /^(.+)/gm, 'r( /$1' );
		r( /\x01/g, '/g, \'' );
		r( /(.+)$/gm, '$1\' );' );

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

		wpTextbox1.value = prefix + '\n\n' + txt + '\n' + postfix;
	};

	$( document ).ready( typosToJs );

}( jQuery, mediaWiki ) );