<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.ss220.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AWikificator.js</id>
	<title>MediaWiki:Wikificator.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ss220.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AWikificator.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.ss220.space/index.php?title=MediaWiki:Wikificator.js&amp;action=history"/>
	<updated>2026-06-05T10:38:53Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.ss220.space/index.php?title=MediaWiki:Wikificator.js&amp;diff=31172&amp;oldid=prev</id>
		<title>Gevron: Gevron переименовал страницу Участник:Gevron/Wikificator.js в MediaWiki:Wikificator.js без оставления перенаправления</title>
		<link rel="alternate" type="text/html" href="https://wiki.ss220.space/index.php?title=MediaWiki:Wikificator.js&amp;diff=31172&amp;oldid=prev"/>
		<updated>2023-05-25T11:12:53Z</updated>

		<summary type="html">&lt;p&gt;Gevron переименовал страницу &lt;a href=&quot;/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Gevron/Wikificator.js&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Участник:Gevron/Wikificator.js (страница не существует)&quot;&gt;Участник:Gevron/Wikificator.js&lt;/a&gt; в &lt;a href=&quot;/index.php/MediaWiki:Wikificator.js&quot; title=&quot;MediaWiki:Wikificator.js&quot;&gt;MediaWiki:Wikificator.js&lt;/a&gt; без оставления перенаправления&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:12, 25 мая 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-25695:rev-31172 --&gt;
&lt;/table&gt;</summary>
		<author><name>Gevron</name></author>
	</entry>
	<entry>
		<id>https://wiki.ss220.space/index.php?title=MediaWiki:Wikificator.js&amp;diff=25695&amp;oldid=prev</id>
		<title>Gevron: Точная копия викификатора с бывшей официальной Minecraft WIki</title>
		<link rel="alternate" type="text/html" href="https://wiki.ss220.space/index.php?title=MediaWiki:Wikificator.js&amp;diff=25695&amp;oldid=prev"/>
		<updated>2022-11-23T18:21:58Z</updated>

		<summary type="html">&lt;p&gt;Точная копия викификатора с бывшей официальной Minecraft WIki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;var wmCantWork = &amp;#039;Викификатор не может работать в вашем браузере&amp;#039;,&lt;br /&gt;
	wmFullText = &amp;#039;Викификатор обработает ВЕСЬ текст на этой странице. Продолжить?&amp;#039;,&lt;br /&gt;
	wmTalkPage = &amp;#039;Викификатор не обрабатывает страницы обсуждения целиком.\n\nВыделите ваше сообщение — обработано будет только оно&amp;#039;;&lt;br /&gt;
window.wfPlugins = window.wfPlugins || [];&lt;br /&gt;
window.wfPluginsT = window.wfPluginsT || [];&lt;br /&gt;
&lt;br /&gt;
function Wikify() {&lt;br /&gt;
	&amp;#039;use strict&amp;#039;;&lt;br /&gt;
	var txt = &amp;#039;&amp;#039;,&lt;br /&gt;
		hidden = [],&lt;br /&gt;
		wpTextbox1 = document.editform.wpTextbox1,&lt;br /&gt;
		winScroll = document.documentElement.scrollTop;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// FUNCTIONS&lt;br /&gt;
&lt;br /&gt;
	function r( r1, r2 ) {&lt;br /&gt;
		txt = txt.replace( r1, r2 );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function hide( re ) {&lt;br /&gt;
		r( re, function ( s ) {&lt;br /&gt;
			return &amp;#039;\x01&amp;#039; + hidden.push( s ) + &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 hideTemplates() {&lt;br /&gt;
		var pos = 0,&lt;br /&gt;
			stack = [],&lt;br /&gt;
			tpl,&lt;br /&gt;
			left,&lt;br /&gt;
			right;&lt;br /&gt;
		while ( true ) {&lt;br /&gt;
			left = txt.indexOf( &amp;#039;{{&amp;#039;, pos );&lt;br /&gt;
			right = txt.indexOf( &amp;#039;}}&amp;#039;, pos );&lt;br /&gt;
			if ( left === -1 &amp;amp;&amp;amp; right === -1 &amp;amp;&amp;amp; !stack.length ) {&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
			if ( left !== -1 &amp;amp;&amp;amp; ( left &amp;lt; right || right === -1 ) ) {&lt;br /&gt;
				stack.push( left );&lt;br /&gt;
				pos = left + 2;&lt;br /&gt;
			} else {&lt;br /&gt;
				left = stack.pop();&lt;br /&gt;
				if ( typeof left === &amp;#039;undefined&amp;#039; ) {&lt;br /&gt;
					if ( right === -1 ) {&lt;br /&gt;
						pos += 2;&lt;br /&gt;
						continue;&lt;br /&gt;
					} else {&lt;br /&gt;
						left = 0;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				if ( right === -1 ) {&lt;br /&gt;
					right = txt.length;&lt;br /&gt;
				}&lt;br /&gt;
				right += 2;&lt;br /&gt;
				tpl = txt.substring( left, right );&lt;br /&gt;
				txt = txt.substring( 0, left ) +&lt;br /&gt;
					&amp;#039;\x01&amp;#039; + hidden.push( tpl ) + &amp;#039;\x02&amp;#039; +&lt;br /&gt;
					txt.substr( right );&lt;br /&gt;
				pos = right - tpl.length;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function processLink(link, left, right) {&lt;br /&gt;
		left = $.trim(left.replace(/[ _\u00A0]+/g, &amp;#039; &amp;#039;));&lt;br /&gt;
		if (left.match(/^(?:Категория|Файл) ?:/)) {&lt;br /&gt;
			return &amp;#039;[[&amp;#039; + left + &amp;#039;|&amp;#039; + right + &amp;#039;]]&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		right = $.trim(right.replace(/ {2,}/g, &amp;#039; &amp;#039;));&lt;br /&gt;
		var inLink = right.substr(0, left.length);&lt;br /&gt;
		var afterLink = right.substr(left.length);&lt;br /&gt;
		var uniLeft = left.substr(0, 1).toUpperCase() + left.substr(1);&lt;br /&gt;
		var uniRight = (right.substr(0, 1).toUpperCase() + right.substr(1)).replace(/[_\u00A0]/g, &amp;#039; &amp;#039;);&lt;br /&gt;
		if (uniRight.indexOf(uniLeft) === 0 &amp;amp;&amp;amp; afterLink.match(/^[a-zа-яё]*$/)) {&lt;br /&gt;
			return &amp;#039;[[&amp;#039; + inLink + &amp;#039;]]&amp;#039; + afterLink;&lt;br /&gt;
		} else {&lt;br /&gt;
			return &amp;#039;[[&amp;#039; + left + &amp;#039;|&amp;#039; + right + &amp;#039;]]&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function processText() {&lt;br /&gt;
		var i,&lt;br /&gt;
			u = &amp;#039;\u00A0&amp;#039;; // non-breaking space&lt;br /&gt;
		if ( mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) % 2 || mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) === 4 ) { // is talk page&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;
		hideTag( &amp;#039;nowiki&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;pre&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;source&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;syntaxhighlight&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;templatedata&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		hideTag( &amp;#039;code&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;kbd&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;tt&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		hideTag( &amp;#039;graph&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;hiero&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;math&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;timeline&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;chem&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;score&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;categorytree&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;inputbox&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;mapframe&amp;#039; );&lt;br /&gt;
		hideTag( &amp;#039;maplink&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		r( /\{\{(?:подст|subst):(?:[уУ]дар(?:ение)?|&amp;#039;)\}\}/g, &amp;#039;\u0301&amp;#039; ); // замена шаблона ударение на символ&lt;br /&gt;
		r( /( |\n|\r)+\{\{(·|•|\*)\}\}/g, &amp;#039;{&amp;#039; + &amp;#039;{$2}}&amp;#039; ); // before { {·/•/*}}, usually in templates&lt;br /&gt;
		r( /\{\{\s*[Шш]аблон:([\s\S]+?)\}\}/g, &amp;#039;{&amp;#039; + &amp;#039;{$1}}&amp;#039; ); // «Шаблон:» в вызове шаблона не нужен&lt;br /&gt;
		r( /(\{\{\s*)(?:reflist|список примечаний)(\s*[\|\}])/ig, &amp;#039;$1примечания$2&amp;#039; );&lt;br /&gt;
		r( /(\{\{\s*)примечания\s*\|\s*height=[0-9]*(\s*[\|\}])/ig, &amp;#039;$1примечания$2&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;
&lt;br /&gt;
// Пользовательские замены перед скрытием шаблонов&lt;br /&gt;
		for ( i in window.wfPluginsT ) {&lt;br /&gt;
			if ( window.wfPluginsT.hasOwnProperty( i ) ) {&lt;br /&gt;
				window.wfPluginsT[i]( txt, r );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		hideTemplates();&lt;br /&gt;
		hide( /^[ \t].*/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;
		hideTag( &amp;#039;gallery&amp;#039; );&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( /(\[\[:?)(module|модуль):( *)/ig, &amp;#039;$1Модуль:&amp;#039; );&lt;br /&gt;
		r( /(\[\[:?)(template|шаблон):( *)/ig, &amp;#039;$1Шаблон:&amp;#039; );&lt;br /&gt;
		r( /(\[\[:?)(image|изображение|file|файл):( *)/ig, &amp;#039;$1Файл:&amp;#039; );&lt;br /&gt;
&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( /\[\[ *([^|[\]]+?) *\| *(&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;)([^&amp;#039;|[\]]*)\2 *]]/g, &amp;#039;$2[[$1|$3]]$2&amp;#039; ); // move fomatting &amp;amp; quotes out of link text&lt;br /&gt;
		r( /\[\[ *([^|[\]]+?) *\| *«([^»|[\]]*)» *\]\]/g, &amp;#039;«[[$1|$2]]»&amp;#039; );&lt;br /&gt;
		r( /\[\[ *([^|[\]]+?) *\| *„([^“|[\]]*)“ *\]\]/g, &amp;#039;„[[$1|$2]]“&amp;#039; );&lt;br /&gt;
		r( /\[\[ *([^|[\]]+?) *\| *&amp;quot;([^&amp;quot;|[\]]*)&amp;quot; *\]\]/g, &amp;#039;&amp;quot;[[$1|$2]]&amp;quot;&amp;#039; );&lt;br /&gt;
		r( /\[\[([^|[\]\n]+)\|([^|[\]\n]+)\]\]/g, processLink );  // link shortening&lt;br /&gt;
		r( /\[\[ *([^|[\]]+)([^|\[\]()]+?) *\| *\1 *\]\]\2/g, &amp;#039;[[$1$2]]&amp;#039; ); // text repetition after link&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;
		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( /(su[pb]&amp;gt;)-(\d)/g, &amp;#039;$1−$2&amp;#039; ); // -&amp;gt;minus&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( /[\u00A0 \t]*&amp;lt;ref(?:\s+name=&amp;quot;&amp;quot;)?(\s|&amp;gt;)/gi, &amp;#039;&amp;lt;ref$1&amp;#039; );&lt;br /&gt;
		r( /(\n== *[a-zа-я\s\.:]+ *==\n+)&amp;lt;references *\/&amp;gt;/ig, &amp;#039;$1{&amp;#039; + &amp;#039;{Примечания}}&amp;#039; );&lt;br /&gt;
		r(/&amp;lt;references\s?([\w\sа-яА-ЯёЁ]+=?)*&amp;quot;?([\w\sа-яА-ЯёЁ]+)*&amp;quot;?\/&amp;gt;/, &amp;#039;{&amp;#039; + &amp;#039;{Примечания|$1$2}}&amp;#039;);&lt;br /&gt;
		r(/&amp;lt;br\s?\/&amp;gt;/gi, &amp;#039;&amp;lt;br&amp;gt;&amp;#039;);&lt;br /&gt;
		hide( /&amp;lt;[a-z][^&amp;gt;]*?&amp;gt;/gi);&lt;br /&gt;
 &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;
		r( /[ \t\u00A0]+/g, &amp;#039; &amp;#039; ); // double spaces&lt;br /&gt;
 &lt;br /&gt;
		// Entities etc. → Unicode chars&lt;br /&gt;
		if ( mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; )!== 10 ) {&lt;br /&gt;
			r( /&amp;amp;(#x[0-9a-f]{2,4}|#[0-9]{3,4}|[0-9a-z]{2,8});/gi, function ( s ) {&lt;br /&gt;
				var t = document.createElement( &amp;#039;textarea&amp;#039; );&lt;br /&gt;
				t.innerHTML = s;&lt;br /&gt;
				var c = t.value;&lt;br /&gt;
				if ( c.length === 1 &amp;amp;&amp;amp; c.charCodeAt( 0 ) &amp;gt; 127 ) {&lt;br /&gt;
					return c;&lt;br /&gt;
				}&lt;br /&gt;
				return s;&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		r( /\(tm\)/gi, &amp;#039;™&amp;#039; );&lt;br /&gt;
		r( /\.\.\./g, &amp;#039;…&amp;#039; );&lt;br /&gt;
		r( /(^|[^+])\+-(?!\+|-)/g, &amp;#039;$1±&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( /(\s)кв\.\s*(дм|см|мм|мкм|нм|км|м)(\s)/g, &amp;#039;$1&amp;#039; + u + &amp;#039;$2²$3&amp;#039; );&lt;br /&gt;
		r( /(\s)куб\.\s*(дм|см|мм|мкм|нм|км|м)(\s)/g, &amp;#039;$1&amp;#039; + u + &amp;#039;$2³$3&amp;#039; );&lt;br /&gt;
		r( /((?:^|[\s&amp;quot;])\d+(?:[\.,]\d+)?)\s*[xх]\s*(\d+(?:[\.,]\d+)?)\s*([мm]{1,2}(?:[\s&amp;quot;\.,;?!]|$))/g, &amp;#039;$1×$2&amp;#039; + u + &amp;#039;$3&amp;#039; );&lt;br /&gt;
		r( /\s+×\s+/g, u + &amp;#039;×&amp;#039; + u );&lt;br /&gt;
		r( /([\wа-яА-ЯёЁ])&amp;#039;(?=[\wа-яА-ЯёЁ])/g, &amp;#039;$1’&amp;#039; ); /* &amp;#039;апостроф */&lt;br /&gt;
		r( /№№/g, &amp;#039;№&amp;#039; );&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( /(==.+==)[\r\n]{2,}(?!=)/g, &amp;#039;$1\n&amp;#039; ); // remove empty line after&lt;br /&gt;
		r( /^== см(\.?|отри|отрите) ?также ==$/gmi, &amp;#039;== См. также ==&amp;#039; );&lt;br /&gt;
		r( /^== сноски ==$/gmi, &amp;#039;== Примечания ==&amp;#039; );&lt;br /&gt;
		r( /^== внешние\sссылки ==$/gmi, &amp;#039;== Ссылки ==&amp;#039; );&lt;br /&gt;
		r( /^== (?:(.+[^.])\.|(.+):) ==$/gm, &amp;#039;== $1$2 ==&amp;#039; );&lt;br /&gt;
		r( /^== &amp;#039;&amp;#039;&amp;#039;(?!.*&amp;#039;&amp;#039;&amp;#039;.*&amp;#039;&amp;#039;&amp;#039;)(.+)&amp;#039;&amp;#039;&amp;#039; ==$/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( /(\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;mdash;&lt;br /&gt;
		r( /(\s)-(\d)/g, &amp;#039;$1−$2&amp;#039; ); // hyphen -&amp;gt; minus&lt;br /&gt;
 &lt;br /&gt;
		// Year and century ranges&lt;br /&gt;
		r( /(\(|\s)([12]?\d{3})[\u00A0 ]?(-{1,3}|—) ?([12]?\d{3})(?![\wА-ЯЁа-яё]|-[^ех]|-[ех][\wА-ЯЁа-яё])/g, &amp;#039;$1$2—$4&amp;#039; );&lt;br /&gt;
		r( /([12]?\d{3}) ?(гг?\.)/g, &amp;#039;$1&amp;#039; + u + &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; + u + &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;$1&amp;#039; + u + &amp;#039;т.&amp;#039; + u + &amp;#039;д.&amp;#039; );&lt;br /&gt;
		r( /(И|и)\sт\.\s?п\./g, &amp;#039;$1&amp;#039; + u + &amp;#039;т.&amp;#039; + u + &amp;#039;п.&amp;#039; );&lt;br /&gt;
		r( /(Т|т)\.\s?н\./g, &amp;#039;$1.&amp;#039; + u + &amp;#039;н.&amp;#039; );&lt;br /&gt;
		r( /(И|и)\.\s?о\./g, &amp;#039;$1.&amp;#039; + u + &amp;#039;о.&amp;#039; );&lt;br /&gt;
		r( /с\.\s?ш\./g, &amp;#039;с.&amp;#039; + u + &amp;#039;ш.&amp;#039; );&lt;br /&gt;
		r( /ю\.\s?ш\./g, &amp;#039;ю.&amp;#039; + u + &amp;#039;ш.&amp;#039; );&lt;br /&gt;
		r( /в\.\s?д\./g, &amp;#039;в.&amp;#039; + u + &amp;#039;д.&amp;#039; );&lt;br /&gt;
		r( /з\.\s?д\./g, &amp;#039;з.&amp;#039; + u + &amp;#039;д.&amp;#039; );&lt;br /&gt;
		r( /л\.\s?с\./g, &amp;#039;л.&amp;#039; + u + &amp;#039;с.&amp;#039; );&lt;br /&gt;
		r( /а\.\s?е\.\s?м\./g, &amp;#039;а.&amp;#039; + u + &amp;#039;е.&amp;#039; + u + &amp;#039;м.&amp;#039; );&lt;br /&gt;
		r( /а\.\s?е\./g, &amp;#039;а.&amp;#039; + u + &amp;#039;е.&amp;#039; );&lt;br /&gt;
		r( /мм\sрт\.\s?ст\./g, &amp;#039;мм&amp;#039; + u + &amp;#039;рт.&amp;#039; + u + &amp;#039;ст.&amp;#039; );&lt;br /&gt;
		r( /н\.\s?э(\.|(?=\s))/g, &amp;#039;н.&amp;#039; + u + &amp;#039;э.&amp;#039; );&lt;br /&gt;
		r( /(Д|д)(о|\.)\sн\.\s?э\./g, &amp;#039;$1о&amp;#039; + u + &amp;#039;н.&amp;#039; + u + &amp;#039;э.&amp;#039; );&lt;br /&gt;
		r( /(\d)[\u00A0 ]?(млн|млрд|трлн|(?:м|с|д|к)?м|[км]г)\.?(?=[,;.]| &amp;quot;?[а-яё\-])/g, &amp;#039;$1&amp;#039; + u + &amp;#039;$2&amp;#039; );&lt;br /&gt;
		r( /(\d)[\u00A0 ](тыс)([^\.А-Яа-яЁё])/g, &amp;#039;$1&amp;#039; + u + &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( /^([#*:]+)[ \t\f\v]*(?!\{\|)([^ \t\f\v*#:;])/gm, &amp;#039;$1 $2&amp;#039; ); // space after #*: unless before table&lt;br /&gt;
		r( /(\S)[\u00A0 \t](-{1,3}|—)[\u00A0 \t](\S)/g, &amp;#039;$1&amp;#039; + u + &amp;#039;— $3&amp;#039; );&lt;br /&gt;
		r( /([А-ЯЁ]\.) ?([А-ЯЁ]\.) ?([А-ЯЁ][а-яё])/g, &amp;#039;$1&amp;#039; + u + &amp;#039;$2&amp;#039; + u + &amp;#039;$3&amp;#039; );&lt;br /&gt;
		r( /([А-ЯЁ]\.)([А-ЯЁ]\.)/g, &amp;#039;$1 $2&amp;#039; );&lt;br /&gt;
		r( /([а-яё]&amp;quot;?\)?[\.\?!:])((?:\x01\d+\x02\|)?[A-ZА-ЯЁ])/g, &amp;#039;$1 $2&amp;#039; ); // word. word&lt;br /&gt;
		r( /([)&amp;quot;a-zа-яё\]²³])\s*([,:])([\[(a-zа-яё])/g, &amp;#039;$1$2 $3&amp;#039; ); // &amp;quot;word, word&amp;quot;, &amp;quot;word: word&amp;quot;; except &amp;quot;:&amp;quot;&lt;br /&gt;
		r( /([)a-zа-яё\]²³])\s*([,:])&amp;quot;/g, &amp;#039;$1$2 &amp;quot;&amp;#039; );&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; + u + &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; + u + &amp;#039;$3&amp;#039; );&lt;br /&gt;
		// inside ()&lt;br /&gt;
		r( /\( +/g, &amp;#039;(&amp;#039; );&lt;br /&gt;
		r( / +\)/g, &amp;#039;)&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
		// Temperature&lt;br /&gt;
		r( /([\s\d=≈≠≤≥&amp;lt;&amp;gt;—(&amp;quot;&amp;#039;|])([+±−\-]?\d+?(?:[.,]\d+?)?)(([ °\^*]| [°\^*])(C|F))(?=[\s&amp;quot;&amp;#039;).,;!?|\x01])/gm, &amp;#039;$1$2&amp;#039; + u + &amp;#039;°$5&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
		// Dot → comma in numbers&lt;br /&gt;
		r( /(\s\d+)\.(\d+[\u00A0 ]*[%‰°×])/gi, &amp;#039;$1,$2&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
		// Plugins&lt;br /&gt;
		for ( i in window.wfPlugins ) {&lt;br /&gt;
			if ( window.wfPlugins.hasOwnProperty( i ) ) {&lt;br /&gt;
				window.wfPlugins[i]( txt, r );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		// &amp;quot;&amp;quot; → «»&lt;br /&gt;
		for ( 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;
		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;
		txt = txt.substr( 1, txt.length - 2 );&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	function processAllText() {&lt;br /&gt;
		txt = wpTextbox1.value;&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;&lt;br /&gt;
			window.insertSummary &amp;amp;&amp;amp;&lt;br /&gt;
			!document.editform.wpSection.value&lt;br /&gt;
		) {&lt;br /&gt;
			window.insertSummary( &amp;#039;викификатор&amp;#039; );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &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;
	} catch ( e ) {}&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;
		} else {&lt;br /&gt;
			processText();&lt;br /&gt;
			wpTextbox1.value = wpTextbox1.value.substring( 0, startPos ) +&lt;br /&gt;
				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;
		} 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;
 &lt;br /&gt;
 &lt;br /&gt;
// Toolbar buttons&lt;br /&gt;
 &lt;br /&gt;
var addOldToolbarButton = function() {&lt;br /&gt;
	var $toolbar = $( &amp;#039;#gadget-toolbar&amp;#039; );&lt;br /&gt;
	if ( !$toolbar.length ) {&lt;br /&gt;
		$toolbar = $( &amp;#039;#toolbar&amp;#039; );&lt;br /&gt;
	}&lt;br /&gt;
	$( &amp;#039;&amp;lt;div&amp;gt;&amp;#039; )&lt;br /&gt;
		.addClass( &amp;#039;mw-toolbar-editbutton&amp;#039; )&lt;br /&gt;
		.attr( &amp;#039;id&amp;#039;, &amp;#039;mw-editbutton-wikify&amp;#039; )&lt;br /&gt;
		.attr( &amp;#039;alt&amp;#039;, &amp;#039;Викификатор&amp;#039; )&lt;br /&gt;
		.attr( &amp;#039;title&amp;#039;, &amp;#039;Викификатор — автоматический обработчик текста&amp;#039; )&lt;br /&gt;
		.css( {&lt;br /&gt;
			&amp;#039;width&amp;#039;: &amp;#039;69px&amp;#039;,&lt;br /&gt;
			&amp;#039;backgroundImage&amp;#039;: &amp;#039;url(//upload.wikimedia.org/wikipedia/commons/3/38/Button_wikify.png)&amp;#039;&lt;br /&gt;
		} )&lt;br /&gt;
		.appendTo( $toolbar )&lt;br /&gt;
		.on( &amp;#039;click&amp;#039;, Wikify );&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
var addNewToolbarButton = function() {&lt;br /&gt;
	$( &amp;#039;#wpTextbox1&amp;#039; ).wikiEditor( &amp;#039;addToToolbar&amp;#039;, {&lt;br /&gt;
		&amp;#039;section&amp;#039;: &amp;#039;main&amp;#039;,&lt;br /&gt;
		&amp;#039;group&amp;#039;: &amp;#039;format&amp;#039;,&lt;br /&gt;
		&amp;#039;tools&amp;#039;: {&lt;br /&gt;
			&amp;#039;wikif&amp;#039;: {&lt;br /&gt;
				label: &amp;#039;Викификатор — автоматический обработчик текста&amp;#039;,&lt;br /&gt;
				type: &amp;#039;button&amp;#039;,&lt;br /&gt;
				icon: &amp;#039;//upload.wikimedia.org/wikipedia/commons/0/06/Wikify-toolbutton.png&amp;#039;,&lt;br /&gt;
				action: {&lt;br /&gt;
					type: &amp;#039;callback&amp;#039;,&lt;br /&gt;
					execute: function() {&lt;br /&gt;
						Wikify();&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} );&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
if ( $.inArray( mw.config.get( &amp;#039;wgAction&amp;#039; ), [ &amp;#039;edit&amp;#039;, &amp;#039;submit&amp;#039; ] ) !== -1 ) {&lt;br /&gt;
	mw.loader.using( [ &amp;#039;user.options&amp;#039;, &amp;#039;jquery.textSelection&amp;#039; ], function () {&lt;br /&gt;
		if ( mw.user.options.get( &amp;#039;usebetatoolbar&amp;#039; ) === 1 || mw.user.options.get( &amp;#039;usebetatoolbar&amp;#039; ) === true ) {&lt;br /&gt;
			$.when(&lt;br /&gt;
				mw.loader.using( &amp;#039;ext.wikiEditor&amp;#039; ),&lt;br /&gt;
				$.ready&lt;br /&gt;
			).then( addNewToolbarButton );&lt;br /&gt;
			console.log(&amp;#039;MediaWiki:Wikificator.js — addNewToolbarButton&amp;#039;);&lt;br /&gt;
		} else {&lt;br /&gt;
			mw.loader.using( &amp;#039;mediawiki.action.edit&amp;#039;, function() {&lt;br /&gt;
				$( addOldToolbarButton );&lt;br /&gt;
				console.log(&amp;#039;MediaWiki:Wikificator.js — addOldToolbarButton&amp;#039;);&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gevron</name></author>
	</entry>
</feed>