<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://imamreza.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-quickLinker.js</id>
	<title>مدیاویکی:Gadget-quickLinker.js - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://imamreza.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-quickLinker.js"/>
	<link rel="alternate" type="text/html" href="https://imamreza.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-quickLinker.js&amp;action=history"/>
	<updated>2026-09-10T20:02:08Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://imamreza.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-quickLinker.js&amp;diff=408&amp;oldid=prev</id>
		<title>Admin: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://imamreza.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-quickLinker.js&amp;diff=408&amp;oldid=prev"/>
		<updated>2026-09-03T16:43:06Z</updated>

		<summary type="html">&lt;p&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;fa&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;نسخهٔ ‏۳ سپتامبر ۲۰۲۶، ساعت ۲۰:۱۳&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;fa&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(بدون تفاوت)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_fa:diff:1.41:old-407:rev-408 --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://imamreza.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-quickLinker.js&amp;diff=407&amp;oldid=prev</id>
		<title>*&gt;Yamaha5: mw.util.escapeRegExp</title>
		<link rel="alternate" type="text/html" href="https://imamreza.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-quickLinker.js&amp;diff=407&amp;oldid=prev"/>
		<updated>2020-05-13T17:36:20Z</updated>

		<summary type="html">&lt;p&gt;mw.util.escapeRegExp&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
from :https://he.wikipedia.org/wiki/מדיה_ויקי:Gadget-quickLinker.js&lt;br /&gt;
This is script for quickly adding links to article from related articles. It is especially useful for orphan articles (invoked automatically), stub articles (invoked automatically) and new articles which usually have less links compared to long existing articles.&lt;br /&gt;
*/&lt;br /&gt;
if ( mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) === 0 ) $(function(){&lt;br /&gt;
&lt;br /&gt;
var titleNoBrackets = /(.+?)( \(|$)/.exec(mw.config.get(&amp;#039;wgTitle&amp;#039;));&lt;br /&gt;
if (titleNoBrackets) titleNoBrackets = titleNoBrackets[1];&lt;br /&gt;
else return;&lt;br /&gt;
switch (mw.config.get(&amp;#039;wgUserLanguage&amp;#039;) )&lt;br /&gt;
{&lt;br /&gt;
	case &amp;#039;fa&amp;#039;:&lt;br /&gt;
		mw.messages.set({&lt;br /&gt;
			&amp;#039;qlinker-edit&amp;#039; : &amp;#039;ویرایش سریع&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-cancel&amp;#039; : &amp;#039;لغو&amp;#039;,&lt;br /&gt;
			&amp;#039;linkify-summary&amp;#039;: &amp;#039;[[ویکی‌پدیا:ابزار پیوندساز|ابزار پیوندساز]]: افزودن پیوند [[$1]] به متن&amp;#039;,&lt;br /&gt;
			&amp;#039;linkify-summary-seeAlso&amp;#039;: &amp;#039;[[ویکی‌پدیا:ابزار پیوندساز|ابزار پیوندساز]]: افزودن پیوند [[$1]] به زیربخش جستارهای وابسته &amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-save-success&amp;#039;: &amp;#039;$1 با موفقیت ذخیره شد!&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-save-continue&amp;#039;: &amp;#039;ذخیره&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-skip&amp;#039;: &amp;#039;رها کردن صفحه&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-invoke&amp;#039;: &amp;#039;افزودن سریع پیوند &amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-sidelink&amp;#039;: &amp;#039;افزودن پیوند&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-no-results&amp;#039;: &amp;#039;نتیجه‌ای یافت نشد&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-confirm-masslink&amp;#039;: &amp;#039;این صفحه پیوندهای زیادی دارد آیا مطمئنید؟&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-orphanpage&amp;#039;: &amp;#039;این مقاله بن‌بست یا یتیم است و در هیچ مقالهٔ دیگری به آن پیوند وجود ندارد.&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-add-see-also&amp;#039;: &amp;#039;عنوان این صفحه در هیچ متنی ذکر نشده است، لطفاً مقاله‌ای را نام ببرید تا پیوند این صفحه را به زیربخش جستارهای وابسته‌اش بیافزایم&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-seeAlso&amp;#039;:&amp;#039;جستارهای وابسته&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-preText&amp;#039;:&amp;#039;مقاله‌مقصد&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-disambig-temp-reg&amp;#039;:&amp;#039;ابهام|نام کوچک&amp;#039;&lt;br /&gt;
		});	&lt;br /&gt;
	break;&lt;br /&gt;
	default:&lt;br /&gt;
		mw.messages.set({&lt;br /&gt;
			&amp;#039;qlinker-edit&amp;#039; : &amp;#039;Quick edit&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-cancel&amp;#039; : &amp;#039;Cancel&amp;#039;,&lt;br /&gt;
			&amp;#039;linkify-summary&amp;#039;: &amp;#039;Adding link to [[$1]]&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-save-success&amp;#039;: &amp;#039;$1 has been saved successfully!&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-save-continue&amp;#039;: &amp;#039;Save&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-skip&amp;#039;: &amp;#039;Skip page&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-invoke&amp;#039;: &amp;#039;Quickly add links&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-sidelink&amp;#039;: &amp;#039;Add links&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-no-results&amp;#039;: &amp;#039;No results found&amp;#039;,&lt;br /&gt;
			&amp;#039;qlinker-confirm-masslink&amp;#039;: &amp;#039;This page already has many links. Are you sure?&amp;#039;&lt;br /&gt;
		});	&lt;br /&gt;
	break;&lt;br /&gt;
}&lt;br /&gt;
var patterns = {&lt;br /&gt;
		tagNames: /&amp;lt;\/?[a-zA-Z\d]*/g,&lt;br /&gt;
		color: /#(?:[abcdef0-9]{8}|[abcdef0-9]{6}|[abcdef0-9]{3})/gi,&lt;br /&gt;
		fileNames: /(?:پرونده|File|تصویر|Image)\:.*?(?=\||\]|\n|$)/gi, // don&amp;#039;t capture | after&lt;br /&gt;
		fileParameter: /\|\s*(file|image|تصویر|پرونده)\s*\=\s*.*/gi,&lt;br /&gt;
		nowikiTag:/&amp;lt;nowiki&amp;gt;.+?&amp;lt;\/nowiki&amp;gt;/g,&lt;br /&gt;
		preTag:/&amp;lt;pre.*?&amp;gt;.*?&amp;lt;\/pre&amp;gt;/g,&lt;br /&gt;
		insideHtmlComment: /&amp;lt;\!\-\-[\s\S]*?\-\-&amp;gt;/g,&lt;br /&gt;
		linksOnEnglishContext: /[a-z][\:\,\. ]*\[\[[\da-z\-\, ]*/gi,&lt;br /&gt;
		mathTag: /&amp;lt;math.*?&amp;gt;[\s\S]*?&amp;lt;\/math&amp;gt;/g,&lt;br /&gt;
		refname: /\&amp;lt;ref name\=.*?\&amp;gt;/g,&lt;br /&gt;
		sourceTag: /(?:&amp;lt;source.*?&amp;gt;[\s\S]*?&amp;lt;\/source&amp;gt;|&amp;lt;syntaxhighlight.*?&amp;gt;[\s\S]*?&amp;lt;\/syntaxhighlight&amp;gt;|&amp;lt;code.*?&amp;gt;[\s\S]*?&amp;lt;\/code&amp;gt;|&amp;lt;timeline.*?&amp;gt;[\s\S]*?&amp;lt;\/timeline&amp;gt;)/g,&lt;br /&gt;
		url: /\/\/.*?(?=[\s\n\|\}\]&amp;lt;]|$)/gi,	 // بدون https?: هم ممکن است&lt;br /&gt;
		subsection: /\={1,}(?:[^\=\n\r]+)\={1,}/gi,&lt;br /&gt;
		blackListTemp: /\{\{(?:جعبه اطلاعات دهستان ایران|جعبه روستای ایران|جعبه اطلاعات روستای ایران)(?:[^\}]+)\}\}/gi,&lt;br /&gt;
		templateVar:/\|[^\n\|\=]+\=/gi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function createQuickEditorDialog(searchRes, safeMode){&lt;br /&gt;
	function QuickEditorDialog( config ) {&lt;br /&gt;
	  this.contextRgx = new RegExp(&amp;#039;(.*[^\\[])(&amp;#039; + mw.util.escapeRegExp(titleNoBrackets) +&amp;#039;)((?![^\\[\\{]*[\\]\\}]).*)&amp;#039;, &amp;#039;i&amp;#039;);&lt;br /&gt;
	  this.contextRgxLink = new RegExp(&amp;#039;(.*\\[\\[)([^\\]]+?)\\|(&amp;#039; + mw.util.escapeRegExp(titleNoBrackets) +&amp;#039;)(\\]\\].*)&amp;#039;, &amp;#039;i&amp;#039;);&lt;br /&gt;
	  this.pageI = -1;&lt;br /&gt;
	  this.searchData = null;&lt;br /&gt;
	  this.curPage = null;&lt;br /&gt;
	  this.safeMode = safeMode;&lt;br /&gt;
	  this.skipsCounter = 0;&lt;br /&gt;
	  this.starttimestamp = null;&lt;br /&gt;
	  this.timestamp = null;&lt;br /&gt;
	  QuickEditorDialog.super.call( this, config );&lt;br /&gt;
	}&lt;br /&gt;
	OO.inheritClass( QuickEditorDialog, OO.ui.ProcessDialog ); &lt;br /&gt;
&lt;br /&gt;
	// Specify a name for .addWindows()&lt;br /&gt;
	QuickEditorDialog.static.name = &amp;#039;QuickEditorDialog&amp;#039;;&lt;br /&gt;
	// Specify a title statically (or, alternatively, with data passed to the opening() method). &lt;br /&gt;
	QuickEditorDialog.static.title = mw.msg(&amp;#039;qlinker-edit&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
	QuickEditorDialog.static.actions = [&lt;br /&gt;
	  { action: &amp;#039;saveContinue&amp;#039;, label: mw.msg(&amp;#039;qlinker-save-continue&amp;#039;), flags: [ &amp;#039;other&amp;#039;, &amp;#039;constructive&amp;#039; ] },&lt;br /&gt;
	  { action: &amp;#039;skipOne&amp;#039;, label: mw.msg(&amp;#039;qlinker-skip&amp;#039;), flags: [ &amp;#039;other&amp;#039;, &amp;#039;progressive&amp;#039; ] },&lt;br /&gt;
	  { label: mw.msg(&amp;#039;qlinker-cancel&amp;#039;), flags: &amp;#039;safe&amp;#039; }&lt;br /&gt;
	];&lt;br /&gt;
&lt;br /&gt;
	// Customize the initialize() function: This is where to add content to the dialog body and set up event handlers. &lt;br /&gt;
	QuickEditorDialog.prototype.initialize = function () {&lt;br /&gt;
	  // Call the parent method&lt;br /&gt;
	  QuickEditorDialog.super.prototype.initialize.call( this );&lt;br /&gt;
	  // Create and append a layout and some content.&lt;br /&gt;
	  this.content = new OO.ui.PanelLayout( { padded: true, expanded: true } );&lt;br /&gt;
	  this.$body.append( this.content.$element );&lt;br /&gt;
	};&lt;br /&gt;
	  &lt;br /&gt;
	QuickEditorDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
	  return 400;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	QuickEditorDialog.prototype.getSetupProcess = function ( data ) {&lt;br /&gt;
	  data = data || {};&lt;br /&gt;
	  return QuickEditorDialog.super.prototype.getSetupProcess.call( this, data )&lt;br /&gt;
	  .next( function () {&lt;br /&gt;
		// Set up contents based on data&lt;br /&gt;
		this.searchData = data.searchData.query;&lt;br /&gt;
		this.starttimestamp = data.searchData.curtimestamp;&lt;br /&gt;
		this.nextPage();&lt;br /&gt;
	  }, this );&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	// Use the getActionProcess() method to specify a process to handle the &lt;br /&gt;
	// actions (for the &amp;#039;save&amp;#039; action, in this example).&lt;br /&gt;
	QuickEditorDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
	  var dialog = this;&lt;br /&gt;
	  switch ( action ) {&lt;br /&gt;
		case &amp;#039;skipOne&amp;#039;:&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
			  dialog.skipsCounter++;&lt;br /&gt;
			  dialog.nextPage();&lt;br /&gt;
			}, this );&lt;br /&gt;
		case &amp;#039;saveContinue&amp;#039;:&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
			  dialog.savePage();&lt;br /&gt;
			}, this );&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  // Fallback to parent handler.&lt;br /&gt;
	  return QuickEditorDialog.super.prototype.getActionProcess.call( this, action );&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	QuickEditorDialog.prototype.savePage = function ( ) {&lt;br /&gt;
		if (this.curPage)&lt;br /&gt;
		{&lt;br /&gt;
			var api = new mw.Api(), pagename = this.curPage;&lt;br /&gt;
			api.post({&lt;br /&gt;
				action: &amp;#039;edit&amp;#039;,&lt;br /&gt;
				title: this.curPage,&lt;br /&gt;
				summary: mw.msg(&amp;#039;linkify-summary&amp;#039;, mw.config.get(&amp;#039;wgTitle&amp;#039;)),&lt;br /&gt;
				minor: &amp;#039;&amp;#039;,&lt;br /&gt;
				token: mw.user.tokens.get(&amp;#039;csrfToken&amp;#039;),&lt;br /&gt;
				text: this.text&lt;br /&gt;
			}).done(function(d) {&lt;br /&gt;
				if (d &amp;amp;&amp;amp; d.edit &amp;amp;&amp;amp; d.edit.result == &amp;#039;Success&amp;#039;)	mw.notify(mw.msg(&amp;#039;qlinker-save-success&amp;#039;, pagename));&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		var self = this;&lt;br /&gt;
		if(this.safeMode) setTimeout(function(){ self.nextPage(); }, 5000/(self.skipsCounter+1));&lt;br /&gt;
		else self.nextPage();&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	QuickEditorDialog.prototype.nextPage = function ( ) {&lt;br /&gt;
		var m, mt, contextPre, contextPost, contextInner, contextInnerOld, newContext;&lt;br /&gt;
		this.pageI++;&lt;br /&gt;
		if (this.searchData.pageids.length &amp;lt;= this.pageI)&lt;br /&gt;
		{&lt;br /&gt;
			if(this.curPage === null) {&lt;br /&gt;
				this.content.$element.html(&amp;#039;&amp;lt;h1&amp;gt;&amp;lt;a target=&amp;quot;_blank&amp;quot; href=&amp;quot;/wiki/Special:Search/&amp;#039;+encodeURI(&amp;#039;&amp;quot;&amp;#039; + titleNoBrackets +&amp;#039;&amp;quot; -linksto:&amp;quot;&amp;#039;+mw.config.get(&amp;#039;wgPageName&amp;#039;) + &amp;#039;&amp;quot;&amp;#039;)+&amp;#039;&amp;quot;&amp;gt;&amp;#039;+mw.msg(&amp;#039;qlinker-no-results&amp;#039;)+&amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&amp;#039;);&lt;br /&gt;
				this.actions.setAbilities( {&lt;br /&gt;
					saveContinue: false, skipOne: false&lt;br /&gt;
				} );&lt;br /&gt;
			} else {&lt;br /&gt;
				this.close();&lt;br /&gt;
			}&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		var page = this.searchData.pages[this.searchData.pageids[this.pageI]],&lt;br /&gt;
			pagecontent = page.revisions[0][&amp;#039;*&amp;#039;];&lt;br /&gt;
			var pagecontentForRegex=pagecontent&lt;br /&gt;
		var disambRgx=new RegExp(&amp;#039;\{\{ *(&amp;#039;+mw.msg(&amp;#039;qlinker-disambig-temp-reg&amp;#039;)+&amp;#039;)&amp;#039;, &amp;#039;i&amp;#039;);&lt;br /&gt;
		if (disambRgx.exec(pagecontent)){self.nextPage();}&lt;br /&gt;
		// test content&lt;br /&gt;
		for (i in patterns) {&lt;br /&gt;
			pagecontentForRegex=pagecontentForRegex.replace(patterns[i],&amp;#039;&amp;#039;)&lt;br /&gt;
		}&lt;br /&gt;
		if (mt=this.contextRgx.exec(pagecontentForRegex)) {&lt;br /&gt;
			m = this.contextRgx.exec(pagecontent)&lt;br /&gt;
			if (m[0]==mt[0] ){&lt;br /&gt;
			//if (m== mt){&lt;br /&gt;
				contextPost = m[3];&lt;br /&gt;
				contextInner = (m[2] == mw.config.get(&amp;#039;wgTitle&amp;#039;)) ? &amp;#039;[[&amp;#039;+mw.config.get(&amp;#039;wgTitle&amp;#039;)+&amp;#039;]]&amp;#039; : &amp;#039;[[&amp;#039;+mw.config.get(&amp;#039;wgTitle&amp;#039;)+&amp;#039;|&amp;#039; + m[2] + &amp;#039;]]&amp;#039;;&lt;br /&gt;
				contextInnerOld = &amp;#039;&amp;#039;;&lt;br /&gt;
			}else{&lt;br /&gt;
				m = null;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		else if (mt=this.contextRgxLink.exec(pagecontentForRegex)) {&lt;br /&gt;
			m = this.contextRgxLink.exec(pagecontent)&lt;br /&gt;
			if (m[0]==mt[0] ){&lt;br /&gt;
				if(m[2].endsWith(&amp;#039;)&amp;#039;)) &lt;br /&gt;
				{&lt;br /&gt;
					m = null; // other existing meaning&lt;br /&gt;
				}&lt;br /&gt;
				else &lt;br /&gt;
				{&lt;br /&gt;
					contextPost = m[3] == mw.config.get(&amp;#039;wgTitle&amp;#039;)? m[4] : &amp;#039;|&amp;#039; + m[3] + m[4];&lt;br /&gt;
					contextInner = mw.config.get(&amp;#039;wgTitle&amp;#039;);&lt;br /&gt;
					contextInnerOld = &amp;#039;&amp;lt;s&amp;gt;&amp;#039; + m[2] + (m[3] == mw.config.get(&amp;#039;wgTitle&amp;#039;)? &amp;#039;|&amp;#039; : &amp;#039;&amp;#039;) + &amp;#039;&amp;lt;/s&amp;gt;&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
			}else{&lt;br /&gt;
				m = null;&lt;br /&gt;
			}&lt;br /&gt;
		}else{&lt;br /&gt;
			m = null;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if ((page.title!=mw.config.get(&amp;#039;wgTitle&amp;#039;)) &amp;amp;&amp;amp; m) {&lt;br /&gt;
				var context = m[0];&lt;br /&gt;
				contextPre = m[1];&lt;br /&gt;
				newContext = contextPre+contextInner+contextPost;&lt;br /&gt;
				this.content.$element.html(&amp;#039;&amp;lt;h1&amp;gt;&amp;lt;a href=&amp;quot;/wiki/&amp;#039;+encodeURI(page.title)+&amp;#039;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;#039;+page.title+&amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;&amp;#039;+contextPre+contextInnerOld+&amp;#039;&amp;lt;b&amp;gt;&amp;#039;+contextInner+&amp;#039;&amp;lt;/b&amp;gt;&amp;#039;+contextPost+&amp;#039;&amp;lt;/p&amp;gt;&amp;#039;);&lt;br /&gt;
				this.curPage = page.title;&lt;br /&gt;
				this.text = pagecontent.replace(context, newContext)&lt;br /&gt;
				this.timestamp = page.revisions[0].timestamp;&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
			this.nextPage();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Make the window.&lt;br /&gt;
	var qlinkerEditor = new QuickEditorDialog( {&lt;br /&gt;
	  size: &amp;#039;medium&amp;#039;&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	// Create and append a window manager, which will open and close the window. &lt;br /&gt;
	var windowManager = new OO.ui.WindowManager();&lt;br /&gt;
	$( &amp;#039;body&amp;#039; ).append( windowManager.$element );&lt;br /&gt;
&lt;br /&gt;
	// Add the window to the window manager using the addWindows() method.&lt;br /&gt;
	windowManager.addWindows( [ qlinkerEditor ] );&lt;br /&gt;
&lt;br /&gt;
	// Open the window!&lt;br /&gt;
	windowManager.openWindow( qlinkerEditor,  { searchData: searchRes } );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function createAddLinksButton(){&lt;br /&gt;
	var addLinksWizard = $(mw.util.addPortletLink(&lt;br /&gt;
					&amp;#039;p-tb&amp;#039;,&lt;br /&gt;
					&amp;#039;#&amp;#039;,&lt;br /&gt;
					mw.msg(&amp;#039;qlinker-sidelink&amp;#039;),&lt;br /&gt;
					&amp;#039;t-quicklinker&amp;#039;,&lt;br /&gt;
					mw.msg(&amp;#039;qlinker-invoke&amp;#039;),&lt;br /&gt;
					null,&lt;br /&gt;
					&amp;#039;#t-whatlinkshere&amp;#039;&lt;br /&gt;
	));&lt;br /&gt;
	&lt;br /&gt;
	addLinksWizard.click(function(e){&lt;br /&gt;
		protectedSearchQuery();&lt;br /&gt;
		e.preventDefault();&lt;br /&gt;
	});&lt;br /&gt;
	return addLinksWizard;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function createAddLinksButtonSeeAlso(){&lt;br /&gt;
	var addLinksWizard = $(mw.util.addPortletLink(&lt;br /&gt;
					&amp;#039;p-tb&amp;#039;,&lt;br /&gt;
					&amp;#039;#&amp;#039;,&lt;br /&gt;
					mw.msg(&amp;#039;qlinker-sidelink&amp;#039;),&lt;br /&gt;
					&amp;#039;t-quicklinker&amp;#039;,&lt;br /&gt;
					mw.msg(&amp;#039;qlinker-invoke&amp;#039;),&lt;br /&gt;
					null,&lt;br /&gt;
					&amp;#039;#t-whatlinkshere&amp;#039;&lt;br /&gt;
	));&lt;br /&gt;
	&lt;br /&gt;
	addLinksWizard.click(function(e){&lt;br /&gt;
		protectedSearchQuery();&lt;br /&gt;
		e.preventDefault();&lt;br /&gt;
	});&lt;br /&gt;
	return addLinksWizard;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function AddSeeAlso(PsgeToAddSeeAlso,LinkedName)&lt;br /&gt;
{&lt;br /&gt;
	if (PsgeToAddSeeAlso)&lt;br /&gt;
	{&lt;br /&gt;
		//get text&lt;br /&gt;
		// should page content by page title&lt;br /&gt;
		(new mw.Api()).get({&lt;br /&gt;
			format: &amp;#039;json&amp;#039;,&lt;br /&gt;
			action: &amp;#039;query&amp;#039;,&lt;br /&gt;
			titles: PsgeToAddSeeAlso,&lt;br /&gt;
			prop: &amp;#039;revisions&amp;#039;,&lt;br /&gt;
			rvprop: &amp;#039;content&amp;#039;,&lt;br /&gt;
		}).then(function(data) {&lt;br /&gt;
			var page = data.query.pages[Object.keys(data.query.pages)[0]];&lt;br /&gt;
			var pagecontent = page.revisions[0][&amp;#039;*&amp;#039;];&lt;br /&gt;
			// Cleaning the content&lt;br /&gt;
			pagecontent=pagecontent.replace(/\= \=/gi,&amp;#039;==&amp;#039;)&lt;br /&gt;
			pagecontent=pagecontent.replace(/\=([^\= \n\r]+) *\=/gi,&amp;#039;= $1 =&amp;#039;)&lt;br /&gt;
			pagecontent=pagecontent.replace(/\={4,}/gi,&amp;#039;==&amp;#039;)&lt;br /&gt;
			// adding link to the content&lt;br /&gt;
			var newPagecontent=pagecontent.replace(&amp;#039;== &amp;#039; + mw.msg(&amp;#039;qlinker-seeAlso&amp;#039;) + &amp;#039; ==&amp;#039;,&amp;#039;== &amp;#039; + mw.msg(&amp;#039;qlinker-seeAlso&amp;#039;) + &amp;#039; ==\n* [[&amp;#039; + LinkedName + &amp;#039;]]\n&amp;#039;)&lt;br /&gt;
			if (newPagecontent==pagecontent) return false&lt;br /&gt;
			//save new text&lt;br /&gt;
			var api = new mw.Api();&lt;br /&gt;
			api.post({&lt;br /&gt;
				action: &amp;#039;edit&amp;#039;,&lt;br /&gt;
				title: PsgeToAddSeeAlso,&lt;br /&gt;
				summary: mw.msg(&amp;#039;linkify-summary-seeAlso&amp;#039;, mw.config.get(&amp;#039;wgTitle&amp;#039;)),&lt;br /&gt;
				minor: &amp;#039;&amp;#039;,&lt;br /&gt;
				token: mw.user.tokens.get(&amp;#039;csrfToken&amp;#039;),&lt;br /&gt;
				text: newPagecontent&lt;br /&gt;
			}).done(function(d) {&lt;br /&gt;
				if (d &amp;amp;&amp;amp; d.edit &amp;amp;&amp;amp; d.edit.result == &amp;#039;Success&amp;#039;)	mw.notify(mw.msg(&amp;#039;qlinker-save-success&amp;#039;, PsgeToAddSeeAlso));&lt;br /&gt;
				return true&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	}else{&lt;br /&gt;
		 mw.notify(mw.msg(&amp;#039;qlinker-no-results&amp;#039;));&lt;br /&gt;
		 return false&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function protectedSearchQuery()&lt;br /&gt;
{&lt;br /&gt;
	var api = new mw.Api();&lt;br /&gt;
	api.get( {&lt;br /&gt;
		action: &amp;#039;query&amp;#039;,&lt;br /&gt;
		prop: &amp;#039;linkshere&amp;#039;,&lt;br /&gt;
		lhlimit: 500,&lt;br /&gt;
		titles: mw.config.get(&amp;#039;wgPageName&amp;#039;),&lt;br /&gt;
		indexpageids: 1&lt;br /&gt;
	}).done(function(d) {&lt;br /&gt;
		var isValid = true, safeMode = false;&lt;br /&gt;
		if(d.query &amp;amp;&amp;amp; d.query.pages &amp;amp;&amp;amp; d.query.pages[d.query.pageids[0]] &amp;amp;&amp;amp; d.query.pages[d.query.pageids[0]].linkshere &amp;amp;&amp;amp; d.query.pages[d.query.pageids[0]].linkshere.length &amp;gt; 100)&lt;br /&gt;
		{&lt;br /&gt;
			/*isValid = confirm(mw.msg(&amp;#039;qlinker-confirm-masslink&amp;#039;));&lt;br /&gt;
			safeMode = true;*/&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		if (!isValid) return;&lt;br /&gt;
		searchLinksApi().done(function(q){&lt;br /&gt;
			if (q.error) mw.notify(q.error.info);&lt;br /&gt;
			if (!q.query || !q.query.pageids || q.query.pageids.length&amp;lt;=1) {&lt;br /&gt;
				var PsgeToAddSeeAlso = prompt(mw.msg(&amp;#039;qlinker-add-see-also&amp;#039;), mw.msg(&amp;#039;qlinker-preText&amp;#039;));&lt;br /&gt;
				if (PsgeToAddSeeAlso != null) {&lt;br /&gt;
					var Result= AddSeeAlso(PsgeToAddSeeAlso, mw.config.get(&amp;#039;wgPageName&amp;#039;))&lt;br /&gt;
				}&lt;br /&gt;
				return Result;&lt;br /&gt;
			}&lt;br /&gt;
			mw.loader.using(&amp;#039;oojs-ui-windows&amp;#039;, function() {	createQuickEditorDialog(q, safeMode) } );&lt;br /&gt;
		});&lt;br /&gt;
	})&lt;br /&gt;
}&lt;br /&gt;
function searchLinksApi() {&lt;br /&gt;
	var api = new mw.Api();&lt;br /&gt;
	return api.get( {&lt;br /&gt;
		action: &amp;#039;query&amp;#039;,&lt;br /&gt;
		generator: &amp;#039;search&amp;#039;,&lt;br /&gt;
		gsrnamespace: 0,&lt;br /&gt;
		gsrsearch: &amp;#039;insource:&amp;quot;&amp;#039; + mw.util.escapeRegExp(titleNoBrackets) +&amp;#039;&amp;quot; -linksto:&amp;#039;+mw.config.get(&amp;#039;wgPageName&amp;#039;),&lt;br /&gt;
		gsrlimit: 50,&lt;br /&gt;
		prop: &amp;#039;revisions&amp;#039;,&lt;br /&gt;
		rvprop: &amp;#039;content|timestamp&amp;#039;,&lt;br /&gt;
		indexpageids: 1,&lt;br /&gt;
		curtimestamp: 1&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
if ($(&amp;#039;.dmbox&amp;#039;).length==0) {// Don&amp;#039;t show the tool at Disambiguation pages because it is useless&lt;br /&gt;
	if ($(&amp;#039;.orphanpage, .stub&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
		if ($(&amp;#039;.orphanpage&amp;#039;).length&amp;gt;0) mw.msg(&amp;#039;qlinker-orphanpage&amp;#039;) &lt;br /&gt;
		searchLinksApi().done(function(d){&lt;br /&gt;
			if (d.query &amp;amp;&amp;amp; d.query.pageids &amp;amp;&amp;amp; d.query.pageids.length&amp;gt;1) {&lt;br /&gt;
				createAddLinksButton().css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
			} else{&lt;br /&gt;
				if (d.query &amp;amp;&amp;amp; d.query.pageids){&lt;br /&gt;
					createAddLinksButtonSeeAlso().css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
		createAddLinksButton();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>*&gt;Yamaha5</name></author>
	</entry>
</feed>