<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AAntonChupin%2FWikificator.js</id>
	<title>Участник:AntonChupin/Wikificator.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AAntonChupin%2FWikificator.js"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:AntonChupin/Wikificator.js&amp;action=history"/>
	<updated>2026-10-22T20:49:26Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:AntonChupin/Wikificator.js&amp;diff=3694&amp;oldid=prev</id>
		<title>AntonChupin: автоматическая правка орфографии и пр.</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:AntonChupin/Wikificator.js&amp;diff=3694&amp;oldid=prev"/>
		<updated>2016-07-08T10:41:36Z</updated>

		<summary type="html">&lt;p&gt;автоматическая правка орфографии и пр.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//&amp;lt;!--&lt;br /&gt;
var wmVersion = &amp;#039;2016-06-18&amp;#039;;&lt;br /&gt;
var wmCantWork = &amp;#039;Викификатор не может работать в вашем браузере\n\nWikificator can not work in your browser&amp;#039;;&lt;br /&gt;
var wmFullText = &amp;#039;Викификатор обработает ВЕСЬ текст на этой странице. Продолжить?&amp;#039;;&lt;br /&gt;
var wmTalkPage = &amp;#039;Викификатор не обрабатывает страницы обсуждения целиком.\n\nВыделите ваше сообщение — обработано будет только оно&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
function Wikify() {&lt;br /&gt;
	var txt = &amp;#039;&amp;#039;, hidden = [], wpTextbox1 = document.editform.wpTextbox1;&lt;br /&gt;
	var winScroll = document.documentElement.scrollTop;&lt;br /&gt;
&lt;br /&gt;
	// Check regexp support&lt;br /&gt;
	try {&lt;br /&gt;
		txt = &amp;#039;ая&amp;#039;.replace(/а/g, &amp;#039;б&amp;#039;).replace(/б(?=я)/, &amp;#039;в&amp;#039;);&lt;br /&gt;
	}&lt;br /&gt;
	catch (e) {&lt;br /&gt;
	}&lt;br /&gt;
	if (txt !== &amp;#039;вя&amp;#039;) {&lt;br /&gt;
		alert(wmCantWork);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	wpTextbox1.focus();&lt;br /&gt;
&lt;br /&gt;
	// Modern browsers&lt;br /&gt;
	if (typeof wpTextbox1.selectionStart !== &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
		var textScroll = wpTextbox1.scrollTop,&lt;br /&gt;
			startPos = wpTextbox1.selectionStart,&lt;br /&gt;
			endPos = wpTextbox1.selectionEnd;&lt;br /&gt;
		txt = wpTextbox1.value.substring(startPos, endPos);&lt;br /&gt;
		if (txt === &amp;#039;&amp;#039;) {&lt;br /&gt;
			processAllText();&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
			processText();&lt;br /&gt;
			wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos);&lt;br /&gt;
		}&lt;br /&gt;
		wpTextbox1.selectionStart = startPos;&lt;br /&gt;
		wpTextbox1.selectionEnd = startPos + txt.length;&lt;br /&gt;
		wpTextbox1.scrollTop = textScroll;&lt;br /&gt;
	}&lt;br /&gt;
	// IE&lt;br /&gt;
	else if (document.selection &amp;amp;&amp;amp; document.selection.createRange) {&lt;br /&gt;
		var range = document.selection.createRange();&lt;br /&gt;
		txt = range.text;&lt;br /&gt;
		if (txt === &amp;#039;&amp;#039;) {&lt;br /&gt;
			processAllText();&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
			processText();&lt;br /&gt;
			range.text = txt;&lt;br /&gt;
			if (range.moveStart) {&lt;br /&gt;
				range.moveStart(&amp;#039;character&amp;#039;, -txt.length);&lt;br /&gt;
			}&lt;br /&gt;
			range.select();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	// Other browsers&lt;br /&gt;
	else if (confirm(wmFullText)) {&lt;br /&gt;
		processAllText();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	document.documentElement.scrollTop = winScroll; // scroll back, for IE/Opera&lt;br /&gt;
&lt;br /&gt;
	// Functions:&lt;br /&gt;
&lt;br /&gt;
	function processAllText() {&lt;br /&gt;
		txt = wpTextbox1.value;&lt;br /&gt;
		if (txt == &amp;#039;version&amp;#039;) {&lt;br /&gt;
			alert(&amp;#039;Викификатор &amp;#039; + wmVersion);&lt;br /&gt;
		}&lt;br /&gt;
		processText();&lt;br /&gt;
		r(/^[\n\r]+/, &amp;#039;&amp;#039;);&lt;br /&gt;
		wpTextbox1.value = txt;&lt;br /&gt;
		txt = &amp;#039;&amp;#039;;&lt;br /&gt;
		if (window.auto_comment &amp;amp;&amp;amp; window.insertSummary &amp;amp;&amp;amp; !document.editform.wpSection.value) {&lt;br /&gt;
			insertSummary(&amp;#039;викификатор&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function processText() {&lt;br /&gt;
		var pattern, matches; // служебные переменные&lt;br /&gt;
		var nbsp = &amp;#039;\u00A0&amp;#039;; // non-breaking space&lt;br /&gt;
		if (wgNamespaceNumber % 2 || wgNamespaceNumber == 4) { // is talk page&lt;br /&gt;
			nbsp = &amp;#039; &amp;#039;;&lt;br /&gt;
			var sigs = txt.match(/\d\d:\d\d, \d\d? \S{3,8} 20\d\d \(UTC\)/g);&lt;br /&gt;
			if (sigs &amp;amp;&amp;amp; sigs.length &amp;gt; 1) {&lt;br /&gt;
				alert(wmTalkPage);&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		hideTags([&amp;#039;nowiki&amp;#039;, &amp;#039;pre&amp;#039;, &amp;#039;source&amp;#039;, &amp;#039;code&amp;#039;, &amp;#039;tt&amp;#039;, &amp;#039;math&amp;#039;, &amp;#039;gallery&amp;#039;]);&lt;br /&gt;
&lt;br /&gt;
		//hide(/{\{[\s\S]+?}}/g); // templates&lt;br /&gt;
		hide(/\{\{илл[\s\S]+?\}\}/g); // Скрываем шаблон &amp;quot;илл&amp;quot;, чтобы не заменялись тире в именах файлов&lt;br /&gt;
		hide(/\{\{Слайдер[\s\S]+?\}\}/g); // Скрываем шаблон &amp;quot;Слайдер&amp;quot;, чтобы не заменялись тире в именах файлов&lt;br /&gt;
&lt;br /&gt;
		hide(/^ .*/mg);&lt;br /&gt;
		hide(/(https?|ftp|news|nntp|telnet|irc|gopher):\/\/[^\s\[\]&amp;lt;&amp;gt;&amp;quot;]+ ?/gi);&lt;br /&gt;
		hide(/^#(redirect|перенапр(авление)?)/i);&lt;br /&gt;
&lt;br /&gt;
		r(/ +(\n|\r)/g, &amp;#039;$1&amp;#039;); // spaces at EOL&lt;br /&gt;
		txt = &amp;#039;\n&amp;#039; + txt + &amp;#039;\n&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
		// Links&lt;br /&gt;
		r(/(\[\[:?)(category|категория):( *)/ig, &amp;#039;$1Категория:&amp;#039;);&lt;br /&gt;
		r(/(\[\[:?)(image|изображение|file):( *)/ig, &amp;#039;$1Файл:&amp;#039;);&lt;br /&gt;
		// Linked years, centuries and ranges&lt;br /&gt;
		r(/(\(|\s)(\[\[[12]?\d{3}\]\])[\u00A0 ]?(-{1,3}|—) ?(\[\[[12]?\d{3}\]\])(\W)/g, &amp;#039;$1$2–$4$5&amp;#039;); // короткое тире&lt;br /&gt;
		r(/(\[\[[12]?\d{3}\]\]) ?(гг?\.)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;);&lt;br /&gt;
		r(/(\(|\s)(\[\[[IVX]{1,5}\]\])[\u00A0 ]?(-{1,3}|—) ?(\[\[[IVX]{1,5}\]\])(\W)/g, &amp;#039;$1$2–$4$5&amp;#039;); // короткое тире&lt;br /&gt;
		r(/(\[\[[IVX]{1,5}\]\]) ?(вв?\.)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;);&lt;br /&gt;
		r(/\[\[(\d+)\]\][\u00A0 ]год/g, &amp;#039;[[$1&amp;#039; + nbsp + &amp;#039;год]]&amp;#039;);&lt;br /&gt;
		r(/\[\[((\d+)(?: (?:год )?в [\wa-яёА-ЯЁ ]+\|\2)?)\]\][\u00A0 ](год[а-яё]*)/g, &amp;#039;[[$1&amp;#039; + nbsp + &amp;#039;$3]]&amp;#039;);&lt;br /&gt;
		r(/\[\[([XVI]+)\]\][\u00A0 ]век/g, &amp;#039;[[$1&amp;#039; + nbsp + &amp;#039;век]]&amp;#039;);&lt;br /&gt;
		r(/\[\[(([XVI]+) век\|\2)\]\][\u00A0 ]век/g, &amp;#039;[[$2&amp;#039; + nbsp + &amp;#039;век]]&amp;#039;);&lt;br /&gt;
		// Nice links&lt;br /&gt;
		r(/(\[\[[^|\[\]]*)[\u00AD\u200E\u200F]+([^\[\]]*\]\])/g, &amp;#039;$1$2&amp;#039;); // Soft Hyphen &amp;amp; DirMark&lt;br /&gt;
		r(/\[\[ *([a-zA-Zа-яёА-ЯЁ\u00A0-\u00FF %!\&amp;quot;$&amp;amp;&amp;#039;()*,\-.\/0-9:;=?\\@\^_`’~]+) *\| *(\1)([a-zа-яё]*) *\]\]/g, &amp;#039;[[$2]]$3&amp;#039;); // &amp;quot;&lt;br /&gt;
		r(/\[\[ *([a-zA-Zа-яёА-ЯЁ\u00A0-\u00FF %!\&amp;quot;$&amp;amp;&amp;#039;()*,\-.\/0-9:;=?\\@\^_`’~]+) *\| *([^|[\]]+) *\]\]([a-zа-яё]+)/g, &amp;#039;[[$1|$2$3]]&amp;#039;); // &amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		// удаление ссылок в шаблоне {{родств-блок}}&lt;br /&gt;
		findall(/{{родств-блок[^{}|]*[^{}]+}}/gm, function (value) {&lt;br /&gt;
			r(value, value.replace(/\[\[([^\[\]\|]*?)\]\]/g, &amp;#039;$1&amp;#039;));&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		hide(/\[\[[^\]|]+/g); // only link part&lt;br /&gt;
&lt;br /&gt;
		// Tags&lt;br /&gt;
		r(/&amp;lt;&amp;lt;(\S.+\S)&amp;gt;&amp;gt;/g, &amp;#039;&amp;quot;$1&amp;quot;&amp;#039;); //&amp;lt;&amp;lt; &amp;gt;&amp;gt;&lt;br /&gt;
		r(/(sup&amp;gt;|sub&amp;gt;|\s)-(\d)/g, &amp;#039;$1−$2&amp;#039;); //minus&lt;br /&gt;
		r(/(&amp;lt;sup&amp;gt;2&amp;lt;\/sup&amp;gt;|&amp;amp;sup2;)/gi, &amp;#039;²&amp;#039;);&lt;br /&gt;
		r(/(&amp;lt;sup&amp;gt;3&amp;lt;\/sup&amp;gt;|&amp;amp;sup3;)/gi, &amp;#039;³&amp;#039;);&lt;br /&gt;
		r(/&amp;lt;(b|strong)&amp;gt;(.*)&amp;lt;\/(b|strong)&amp;gt;/gi, &amp;quot;&amp;#039;&amp;#039;&amp;#039;$2&amp;#039;&amp;#039;&amp;#039;&amp;quot;);&lt;br /&gt;
		r(/&amp;lt;(i|em)&amp;gt;(.*?)&amp;lt;\/(i|em)&amp;gt;/gi, &amp;quot;&amp;#039;&amp;#039;$2&amp;#039;&amp;#039;&amp;quot;);&lt;br /&gt;
		r(/^&amp;lt;hr ?\/?&amp;gt;/gim, &amp;#039;----&amp;#039;);&lt;br /&gt;
		r(/&amp;lt;\/?(hr|br)( [^\/&amp;gt;]+?)? ?\/?&amp;gt;/gi, &amp;#039;&amp;lt;$1$2 /&amp;gt;&amp;#039;);&lt;br /&gt;
		r(/(\n== *Примечания *==\n)&amp;lt;references *\/&amp;gt;/, &amp;#039;$1{{примечания}}&amp;#039;);&lt;br /&gt;
		hide(/&amp;lt;[a-z][^&amp;gt;]*?&amp;gt;/gi);&lt;br /&gt;
&lt;br /&gt;
		// Tables&lt;br /&gt;
		hide(/^({\||\|-).*/mg); // table/row def&lt;br /&gt;
		hide(/(^\||^!|!!|\|\|) *[a-z]+=[^|]+\|(?!\|)/mgi); // cell style&lt;br /&gt;
		hide(/\| +/g); // formatted cell&lt;br /&gt;
&lt;br /&gt;
		// Spaces&lt;br /&gt;
		r(/[ \t]+/g, &amp;#039; &amp;#039;); // double spaces&lt;br /&gt;
		r(/\n\n\n+/g, &amp;#039;\n\n&amp;#039;); // remove several empty lines&lt;br /&gt;
&lt;br /&gt;
		// Headings&lt;br /&gt;
		r(/^(=+)[ \t\f\v]*(.*?)[ \t\f\v]*=+$/gm, &amp;#039;$1 $2 $1&amp;#039;); // add spaces inside&lt;br /&gt;
		r(/([^\r\n])(\r?\n==.*==\r?\n)/g, &amp;#039;$1\n$2&amp;#039;); // add empty line before&lt;br /&gt;
		r(/^== см(\.?|отрите) ?также ==$/gmi, &amp;#039;== См. также ==&amp;#039;);&lt;br /&gt;
		//r(/^== сноски ==$/gmi, &amp;#039;== Примечания ==&amp;#039;);&lt;br /&gt;
		r(/^== (.+)[.:] ==$/gm, &amp;#039;== $1 ==&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		r(/«|»|“|”|„/g, &amp;#039;&amp;quot;&amp;#039;); // temp&lt;br /&gt;
&lt;br /&gt;
		// Hyphens and en dashes to pretty dashes&lt;br /&gt;
		//r(/–/g, &amp;#039;-&amp;#039;); // &amp;amp;ndash; -&amp;gt;  hyphen&lt;br /&gt;
		r(/&amp;amp;(#151|mdash);/g, &amp;#039;—&amp;#039;); // -&amp;gt; &amp;amp;mdash;&lt;br /&gt;
		r(/(&amp;amp;nbsp;|\s)[-—]{1,3} /g, &amp;#039;$1— &amp;#039;); // hyphen -&amp;gt; &amp;amp;mdash;&lt;br /&gt;
		r(/(\d)--(\d)/g, &amp;#039;$1–$2&amp;#039;); // -&amp;gt; &amp;amp;ndash;&lt;br /&gt;
		r(/^# ?-$/mg, &amp;#039;# —&amp;#039;); // это нужно в списках синонимов/антонимов&lt;br /&gt;
&lt;br /&gt;
		// Entities etc. -&amp;gt; Unicode chars&lt;br /&gt;
		r(/&amp;amp;#x([0-9a-f]{1,4});/gi, function (n, a) {&lt;br /&gt;
			return String.fromCharCode(eval(&amp;#039;0x&amp;#039; + a.substr(-4)));&lt;br /&gt;
		}); // &amp;amp;#x301;&lt;br /&gt;
		r(/&amp;amp;copy;/gi, &amp;#039;©&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;reg;/gi, &amp;#039;®&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;sect;/gi, &amp;#039;§&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;euro;/gi, &amp;#039;€&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;yen;/gi, &amp;#039;¥&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;pound;/gi, &amp;#039;£&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;deg;/g, &amp;#039;°&amp;#039;);&lt;br /&gt;
		r(/\(tm\)|\(тм\)|&amp;amp;trade;/gi, &amp;#039;™&amp;#039;);&lt;br /&gt;
		r(/\.\.\.|&amp;amp;hellip;/g, &amp;#039;…&amp;#039;);&lt;br /&gt;
		r(/\+-|&amp;amp;plusmn;/g, &amp;#039;±&amp;#039;);&lt;br /&gt;
		r(/~=/g, &amp;#039;≈&amp;#039;);&lt;br /&gt;
		r(/\^2(\D)/g, &amp;#039;²$1&amp;#039;);&lt;br /&gt;
		r(/\^3(\D)/g, &amp;#039;³$1&amp;#039;);&lt;br /&gt;
		r(/&amp;amp;((la|ra|bd|ld)quo|quot);/g, &amp;#039;&amp;quot;&amp;#039;);&lt;br /&gt;
		r(/([\wа-яА-ЯёЁ])&amp;#039;([\wа-яА-ЯёЁ])/g, &amp;#039;$1’$2&amp;#039;); //&amp;#039;&lt;br /&gt;
		r(/№№/g, &amp;#039;№&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// Year and century ranges&lt;br /&gt;
		r(/(\(|\b)([12]?\d{3})[\u00A0 ]?(-{1,3}|—) ?([12]?\d{3})(?![\w-°])/g, &amp;#039;$1$2–$4&amp;#039;); // короткое тире&lt;br /&gt;
		r(/([12]?\d{3}) ?(гг?\.)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;);&lt;br /&gt;
		r(/(\(|\s)([IVX]{1,5})[\u00A0 ]?(-{1,3}|—) ?([IVX]{1,5})(?![\w-°])/g, &amp;#039;$1$2–$4&amp;#039;); // короткое тире&lt;br /&gt;
		r(/([IVX]{1,5}) ?(вв?\.)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// Reductions&lt;br /&gt;
		//r(/(Т|т)\.\s?е\./g, &amp;#039;$1о есть&amp;#039;);&lt;br /&gt;
		//r(/(Т|т)\.\s?к\./g, &amp;#039;$1ак как&amp;#039;);&lt;br /&gt;
		//r(/(В|в)\sт\. ?ч\./g, &amp;#039;$1 том числе&amp;#039;);&lt;br /&gt;
		r(/и\sт\.\s?д\./g, &amp;#039;и&amp;#039; + nbsp + &amp;#039;т.&amp;#039; + nbsp + &amp;#039;д.&amp;#039;);&lt;br /&gt;
		r(/и\sт\.\s?п\./g, &amp;#039;и&amp;#039; + nbsp + &amp;#039;т.&amp;#039; + nbsp + &amp;#039;п.&amp;#039;);&lt;br /&gt;
		r(/(Т|т)\.\s?н\./g, &amp;#039;$1.&amp;#039; + nbsp + &amp;#039;н.&amp;#039;);&lt;br /&gt;
		r(/н\.\s?э\./g, &amp;#039;н.&amp;#039; + nbsp + &amp;#039;э.&amp;#039;);&lt;br /&gt;
		r(/(Д|д)(о|\.)\sн\.\s?э\./g, &amp;#039;$1о&amp;#039; + nbsp + &amp;#039;н.&amp;#039; + nbsp + &amp;#039;э.&amp;#039;);&lt;br /&gt;
		r(/(\d)[\u00A0 ]?(млн|млрд|трлн|(?:м|с|д|к)?м|[км]г)\.?(?=[,;.]| &amp;quot;?[а-яё-])/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;);&lt;br /&gt;
		r(/(\d)[\u00A0 ](тыс)([^\.А-Яа-яЁё])/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2.$3&amp;#039;);&lt;br /&gt;
		r(/ISBN:\s?(?=[\d\-]{8,17})/, &amp;#039;ISBN &amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// Insert/delete spaces&lt;br /&gt;
		r(/&amp;amp;#32;/g, &amp;#039; &amp;#039;); // html-code of space&lt;br /&gt;
		r(/^([#*:]+)[ \t\f\v]*([^ \t\f\v*#:;])/gm, &amp;#039;$1 $2&amp;#039;); // space after #*:&lt;br /&gt;
		r(/(\S) (-{1,3}|—) (\S)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;— $3&amp;#039;);&lt;br /&gt;
		r(/([А-Я]\.) ?([А-Я]\.) ?([А-Я][а-я])/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039; + nbsp + &amp;#039;$3&amp;#039;);&lt;br /&gt;
		r(/([А-Я]\.)([А-Я]\.)/g, &amp;#039;$1 $2&amp;#039;);&lt;br /&gt;
		r(/([а-я]\.)([А-ЯA-Z])/g, &amp;#039;$1 $2&amp;#039;); // word. word&lt;br /&gt;
		r(/([)&amp;quot;а-яa-z\]])\s*,([\[(&amp;quot;а-яa-z])/g, &amp;#039;$1, $2&amp;#039;); // word, word&lt;br /&gt;
		r(/([)&amp;quot;а-яa-z\]])\s([,;])\s([\[(&amp;quot;а-яa-z])/g, &amp;#039;$1$2 $3&amp;#039;);&lt;br /&gt;
		r(/([^%\/\w]\d+?(?:[.,]\d+?)?) ?([%‰])(?!-[А-Яа-яЁё])/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$2&amp;#039;); // 5 %&lt;br /&gt;
		r(/(\d) ([%‰])(?=-[А-Яа-яЁё])/g, &amp;#039;$1$2&amp;#039;); // 5%-й&lt;br /&gt;
		r(/([№§])(\s*)(\d)/g, &amp;#039;$1&amp;#039; + nbsp + &amp;#039;$3&amp;#039;);&lt;br /&gt;
		r(/\( +/g, &amp;#039;(&amp;#039;);&lt;br /&gt;
		r(/ +\)/g, &amp;#039;)&amp;#039;); // inside ()&lt;br /&gt;
&lt;br /&gt;
		// Temperature&lt;br /&gt;
		r(/([\s\d=≈≠≤≥&amp;lt;&amp;gt;(&amp;quot;&amp;#039;|])([+±−-]?\d+?(?:[.,]\d+?)?)(([ °^*]| [°^*])[CС])(?=[\s&amp;quot;&amp;#039;).,;!?|])/gm, &amp;#039;$1$2&amp;#039; + nbsp + &amp;#039;°C&amp;#039;); //&amp;#039;&lt;br /&gt;
		r(/([\s\d=≈≠≤≥&amp;lt;&amp;gt;(&amp;quot;&amp;#039;|])([+±−-]?\d+?(?:[.,]\d+?)?)(([ °^*]| [°^*])F)(?=[\s&amp;quot;&amp;#039;).,;|!?])/gm, &amp;#039;$1$2&amp;#039; + nbsp + &amp;#039;°F&amp;#039;); //&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		// Dot -&amp;gt; comma in numbers&lt;br /&gt;
		r(/(\s\d+)\.(\d+[\u00A0 ]*[%‰°])/gi, &amp;#039;$1,$2&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// &amp;quot;&amp;quot; -&amp;gt; «»&lt;br /&gt;
		for (var i = 1; i &amp;lt;= 2; i++) {&lt;br /&gt;
			r(/([\s\x02!|#&amp;#039;&amp;quot;\/(;+-])&amp;quot;([^&amp;quot;]*)([^\s&amp;quot;(|])&amp;quot;([^a-zа-яё])/ig, &amp;#039;$1«$2$3»$4&amp;#039;); //&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		while (/«[^»]*«/.test(txt)) {&lt;br /&gt;
			r(/«([^»]*)«([^»]*)»/g, &amp;#039;«$1„$2“&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Специфичные для Викисловаря вещи&lt;br /&gt;
		r(/([а-я\]]{2})\.\s*{{пример/gi, &amp;#039;$1 {{пример&amp;#039;); // Убрать точки в конце толкований&lt;br /&gt;
&lt;br /&gt;
		// Заполнение слогов&lt;br /&gt;
		r(/{{по-слогам\|}}/g, &amp;#039;&amp;#039;); // Выбросить пустой шаблон-болванку&lt;br /&gt;
&lt;br /&gt;
		matches = txt.match(/(\|слоги=([^{|}]+))(}|\||$})/m); // Если разбиение приведено без шаблона, обернуть его в шаблон&lt;br /&gt;
		if (matches) {&lt;br /&gt;
			r(matches[1], &amp;#039;|слоги={{по-слогам|&amp;#039; + matches[2].replace(&amp;quot;\r&amp;quot;, &amp;quot;&amp;quot;).replace(&amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;).replace(&amp;quot;-&amp;quot;, &amp;quot;|&amp;quot;).replace(&amp;quot;·&amp;quot;, &amp;quot;|.|&amp;quot;) + &amp;#039;}}\n&amp;#039; );&lt;br /&gt;
		}&lt;br /&gt;
		r(/\|слоги=$/m, &amp;#039;|слоги={{по-слогам|&amp;#039; + wgTitle + &amp;#039;}}&amp;#039;);&lt;br /&gt;
		r(/{{adv ru\|([а-я]+)}}/, &amp;#039;{{adv ru|{{по-слогам|$1}}}}&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// Удаление устаревших параметров&lt;br /&gt;
		findall(/{{(гл|сущ) ru((.|\s)*?)==/gm, function (value) {&lt;br /&gt;
			r(value, value.replace(&amp;quot;|show-text=1\r\n&amp;quot;, &amp;#039;&amp;#039;).replace(&amp;quot;|show-text=1\n&amp;quot;, &amp;#039;&amp;#039;).replace(&amp;quot;|show-text=1&amp;quot;, &amp;#039;&amp;#039;));&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Добавление значения для параметра &amp;quot;основа=&amp;quot;&lt;br /&gt;
		r(/\|основа=$/m, &amp;#039;|основа=&amp;#039; + wgTitle);&lt;br /&gt;
&lt;br /&gt;
		// Удаление &amp;quot;-а&amp;quot;, &amp;quot;-я&amp;quot;, &amp;quot;-ь&amp;quot;, &amp;quot;-о&amp;quot; и &amp;quot;-й&amp;quot; из основы для изменяемых существительных&lt;br /&gt;
		findall(/{{сущ ru [fmn] (ina|a) [1-9][^{}|]*\|основа=([^{}|\n\r]+)/gm, function (value) {&lt;br /&gt;
			var word = value.match(/\|основа=([^{}|\n\r]+)/)[1];&lt;br /&gt;
			if (endsWith(word, [&amp;quot;ь&amp;quot;, &amp;quot;а&amp;quot;, &amp;quot;я&amp;quot;, &amp;quot;о&amp;quot;, &amp;quot;й&amp;quot;])) {&lt;br /&gt;
				r(value, value.replace(&amp;quot;|основа=&amp;quot; + word, &amp;quot;|основа=&amp;quot; + word.slice(0, -1)));&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Удаление &amp;quot;-ий&amp;quot;, &amp;quot;-ый&amp;quot; и &amp;quot;-ой&amp;quot; в основе для прилагательных&lt;br /&gt;
		findall(/{{прил ru[^{}|]*\|основа=([^{}|\n\r]+)/gm, function (value) {&lt;br /&gt;
			var word = value.match(/\|основа=([^{}|\n\r]+)/)[1];&lt;br /&gt;
			if (endsWith(word, [&amp;quot;ый&amp;quot;, &amp;quot;ий&amp;quot;, &amp;quot;ой&amp;quot;])) {&lt;br /&gt;
				r(value, value.replace(&amp;quot;|основа=&amp;quot; + word, &amp;quot;|основа=&amp;quot; + word.slice(0, -2)));&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Удаление лишнего параметра &amp;quot;основа1=&amp;quot;&lt;br /&gt;
		pattern =&lt;br /&gt;
			&amp;quot;{{&amp;quot; +&lt;br /&gt;
				// подходящий заголовок шаблона:&lt;br /&gt;
				&amp;quot;(&amp;quot; +&lt;br /&gt;
					&amp;quot;сущ ru f ina (0|1a|2a|3a|4a|5a|6a|7a|8a)|&amp;quot; +&lt;br /&gt;
					&amp;quot;сущ ru f a (0|1a|2a|3a|4a|5a|7a|8a)|&amp;quot; +&lt;br /&gt;
					&amp;quot;сущ ru n ina (0|1a|4a|7a)|&amp;quot; +&lt;br /&gt;
					&amp;quot;сущ ru m a (0|1a|2a|3a|4a|6a)|&amp;quot; +&lt;br /&gt;
					&amp;quot;сущ ru m ina (0|1a|2a|3a|4a|6a)&amp;quot; +&lt;br /&gt;
				&amp;quot;)&amp;quot; +&lt;br /&gt;
				// оставшаясь часть шаблона:&lt;br /&gt;
				&amp;quot;([^{}]*({{([^{}]*({{[^{}]+}})?[^{}]*)+}})?[^{}]*)+&amp;quot; +&lt;br /&gt;
			&amp;quot;}}&amp;quot;;&lt;br /&gt;
		findall(new RegExp(pattern, &amp;#039;gm&amp;#039;), function (value) {&lt;br /&gt;
			r(value, value.replace(/\|основа1=[^|{}]*/g, &amp;#039;&amp;#039;));&lt;br /&gt;
		});&lt;br /&gt;
		// Возвращение всех ранее скрытых элементов (через hide и hideTag)&lt;br /&gt;
		txt = txt.substr(1, txt.length - 2);&lt;br /&gt;
		if (&amp;#039;0&amp;#039;.replace(&amp;#039;0&amp;#039;, &amp;#039;$$&amp;#039;) == &amp;#039;$&amp;#039;) { ////$ in replacing string is special, except in IE&lt;br /&gt;
			for (i = 0; i &amp;lt; hidden.length; i++) {&lt;br /&gt;
				hidden[i] = hidden[i].replace(/\$/g, &amp;#039;$$$$&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		while (hidden.length &amp;gt; 0) {&lt;br /&gt;
			r(&amp;#039;\x01&amp;#039; + hidden.length + &amp;#039;\x02&amp;#039;, hidden.pop());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function r(regExp, replaceTo) {&lt;br /&gt;
		txt = txt.replace(regExp, replaceTo);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function hide(regExp) {&lt;br /&gt;
		r(regExp, function (value) {&lt;br /&gt;
			return &amp;#039;\x01&amp;#039; + hidden.push(value) + &amp;#039;\x02&amp;#039;;&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function hideTag(tag) {&lt;br /&gt;
		hide(new RegExp(&amp;#039;&amp;lt;&amp;#039; + tag + &amp;#039;( [^&amp;gt;]+)?&amp;gt;[\\s\\S]+?&amp;lt;\\/&amp;#039; + tag + &amp;#039;&amp;gt;&amp;#039;, &amp;#039;gi&amp;#039;));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function hideTags(tags) {&lt;br /&gt;
		for (var i = 0; i &amp;lt; tags.length; i++) {&lt;br /&gt;
			hideTag(tags[i]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function findall(regExp, func) {&lt;br /&gt;
		var matches = txt.match(regExp);&lt;br /&gt;
		if (matches) {&lt;br /&gt;
			for (var i = 0; i &amp;lt; matches.length; i++) {&lt;br /&gt;
				func(matches[i]);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function endsWith(str, suffixes) {&lt;br /&gt;
		for (var i = 0; i &amp;lt; suffixes.length; i++) {&lt;br /&gt;
			var suffix = suffixes[i];&lt;br /&gt;
			if (str.indexOf(suffix, str.length - suffix.length) !== -1) {&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
//--&amp;gt;&lt;/div&gt;</summary>
		<author><name>AntonChupin</name></author>
	</entry>
</feed>