User:Sam Sailor/global.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Automate purge confirmation dialog */
if ( mw.config.get( 'wgAction' ) === 'purge' ) {
  $('form[action*="action=purge"]').submit(); }
/**
 * TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
 * @see https://meta.wikimedia.org/wiki/TemplateScript
 * @update-token [[File:Pathoschild/templatescript.js]]
 * Documentation: [[TemplateScript]]
 * Notes:
 */
// <nowiki>
mw.config.set('userjs-templatescript', { regexEditor: false });
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
	pathoschild.TemplateScript.add({
	name:'Clean-up',
	script: function(editor) {
		editor
				// Most of the following from [[:en:Special:PermaLink/846168377]] with thanks
				// html, superscripted ordinals 
				.replace(/\[\[[\w]*_\d{4}#\d{4}_[\w]*_\d\d?\|(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))( \d\d?)\]\]/g, '$1$2')
				//misplaced unit (squared)il
				.replace(/(\d)(<sup>)(m)(\d<\/sup>)/gi, '$1$3$2$4')
				// rem linking within section headings
				.replace(/(==[ ]?(?:[^\[\n=]*))\[\[([^\|\]]+?)\]\]((?:[^\[=\n]*|)[ ]?==)/gi, '$1$2$3')
				.replace(/(==[ ]?(?:[^\[\n=]*))\[\[[^\|\]]+?\|([^\]]+?)\]\]((?:[^\[=\n]*|)[ ]?==)/gi, '$1$2$3')
				.replace(/(==[ ]?(?:[^\[\n=]*))\[\[(?:[^\|\]]+?\||)([^\]]+?)\]\]([^\[\|]*)\[\[(?:[^\|\]]+?\||)([^\]]+?)\]\](?:([^\[\|]*)\[\[(?:[^\|\]]+?\||)([^\]]+?)\]\]|)((?:[^\[=\n]*|)[ ]?==)/gi, '$1$2$3$4$5$6$7')
				// rem refs within section headings
				.replace(/(==[ ]?(?:[^<>\n]*))(?:<ref(?:>[^<>]*<\/ref| name=[^\/>]+\/)>)([^<>\n]*)(?=[ ]?==)/gi, '$1$2')
				// rem deprecated parameters 
				.replace(/({{(?:end|start)[-–]date)\|df=y(?:es|)/gi, "$1")
				.replace(/({{(?:end|start)[-–]date(?:[^\{\}]*))\|df=y(?:es|)(}})/gi, "$1$2")
				// add correct hyphenation
				.replace(/\b([2-9]|\d{2,3}|half|quarter|two|three|four|five|six|seven|eight|nine|ten) (second|minute|hour|day|week|month|year|decade|fold|liter|litre|degree|inch|foot|yard|mile|meter|metre|man|page|point|word|dollar|cent|floor|store?y|(?:bed|)room)\b/g, "$1-$2")
				// palliative to reverse incorrectly inserted hyphen "n-second-class"
				.replace(/\b([2-9]|\d{2,3}|two|three|four|five|six|seven|eight|nine|ten)-(second[- ]class)\b/g, "$1 $2")
				.replace(/\b(two|three|four|five|six|seven|eight|nine|ten) (halves|thirds|quarters|(?:four|fif|six|seven|eigh|nin|ten)ths)\b/gi, "$1-$2")
				.replace(/\b((?:[2-9]|\d{2,3})-(?:month|year)) (old)\b/gi, "$1-$2")
				.replace(/(\bnon) ([A-Z]?[a-z]+)/g, "$1-$2")
				// reinstate for "persona non grata"
				.replace(/(\bnon)-(grata)/g, "$1 $2") 
				// reinstate for "sine qua non"	
				.replace(/(qua non)-([A-Z])/gi, "$1 $2") 
				// ungrammatical constructs involving year ranges"
				.replace(/([Bb]etween \d{4})\s?[‐‒–—―]\s?(\d{4})/g, "$1 and $2")
				.replace(/([Bb]etween (\d{2})\d{2})\s?[‐‒–—―]\s?(\d{2})/g, "$1 and $2$3")
				.replace(/([Ff]rom \d{4})\s?[‐‒–—―]\s?(\d{4})/g, "$1 to $2")
				.replace(/([Ff]rom (\d{2})\d{2})\s?[‐‒–—―]\s?(\d{2})/g, "$1 to $2$3")
				.replace(/(?:\| ?date= ?)(Cric\w{4,})(?=[|}])/gi, "|publisher=$1")
				.replace(/{{color ?(?:box|sample)\s?\|#?\w+}}\s?([^{]*){{color ?(?:box|sample)\s?\|#?\w+}}\s?([^{]*){{color ?(?:box|sample)\s?\|#?\w+}}/gi, "$1$2")
				.replace(/{{color ?(?:box|sample)\s?\|#?\w+}}\s?([^{]*){{color ?(?:box|sample)\s?\|#?\w+}}/gi, "$1")
				.replace(/(\|\s*(?:\w+_|)colou?rs\s*=\s*[^{]*){{color ?sample\s?\|#?\w+}}([^{|]*)(?=\n?[|{}])/gi, "$1$2")
				// WP:AMPERSAND
				.replace(/(==[ ]*[^=&\n]* )&( [^=&\n]*)(?=[ ]*=)/g, '$1and$2')
				// improper capitalisation within section headings
				.replace(/(==[ ]*External )(Links)(?=[ ]*=)/g, '$1links')
				.replace(/(==[ ]*See )(Also)(?=[ ]*=)/g, '$1also')
				.replace(/(==[ ]*)Notable Alumnae/g, '$1Alumni')
				.replace(/(==[ ]*)Notable ([A-Z]\w*?)/g, '$1$2')
				.replace(/(==[ ]*Box )O(ffice)(?=[ ]*=)/g, '$1o$2')
				.replace(/(==[ ]*Film )S(ongs)(?=[ ]*=)/g, '$1s$2')
				.replace(/(==[ ]*Historical )I(nformation)(?=[ ]*=)/g, '$1i$2')
				.replace(/(==[ ]*Important )R(ecordings)(?=[ ]*=)/g, '$1r$2')
				.replace(/(==[ ]*[\w]+? and )A(wards?|chievements?)(?=[ ]*=)/g, '$1a$2')
				.replace(/(==[ ]*[\w]+? and )A(varohana?)(?=[ ]*=)/g, '$1a$2')
				.replace(/(==[ ]*[\w]+? and )R(elationships?)(?=[ ]*=)/g, '$1r$2')
				.replace(/(==[ ]*[\w]+? and )S(amavadi?)(?=[ ]*=)/g, '$1s$2')
				.replace(/(==[ ]*[\w\s]+? )A(lbums?)(?=[ ]*=)/g, '$1a$2')
				.replace(/(==[ ]*[\w\s]+? )C(areer|haracters|hart|ompetitions?|ompositions|redits)(?=[ ]*=)/g, '$1c$2')
				.replace(/(==[ ]*[\w\s]+? )(Capped [Pp]layers)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*[A-Z]\w+ )((?:[A-Z]\w+ |and |)Destinations?)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*[\w\s]+? )E(ducation)(?=[ ]*=)/g, '$1e$2')
				.replace(/(==[ ]*[\w\s]+? )F(acilities|ilms?)(?=[ ]*=)/g, '$1f$2')
				.replace(/(==[ ]*[\w\s]+? )L(evels?|ife|istings?)(?=[ ]*=)/g, '$1l$2')
				.replace(/(==[ ]*[\w\s]+? )M(ember(?:ship|s?))(?=[ ]*=)/g, '$1m$2')
				.replace(/(==[ ]*[\w\s]+? )P(oll(?:ing|s?))(?=[ ]*=)/g, '$1p$2')
				.replace(/(==[ ]*[\w\s]+? )R(ankings?|eading|esults?|ecords?|eception|ecognition)(?=[ ]*=)/g, '$1r$2')
				.replace(/(==[^=\n]+) +S((?:chedule|creenings?|ummary) ?==)/gi, '$1 s$2')
				.replace(/(==[ ]*[\w\s]+? )T(ables?|ournaments|ransport(?:ations?|))(?=[ ]*=)/gi, '$1t$2')
				.replace(/(==[ ]*[\w\s]+? )W(inners)(?=[ ]*=)/g, '$1w$2')
				.replace(/(==[ ]*[\w\s]+? )Y(ears)(?=[ ]*=)/g, '$1y$2')
				.replace(/(==[ ]*Performance )(By \w+)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Extra )(Preliminary Round)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Extended )(Playing Squad)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Wider )(Training [Gg]roup)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Regular )(Season [Ss]chedule)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Right )([Oo]f Reply)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Twin )(Towns(?: [Aa]nd [Ss]ister [Cc]ities|))(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*Film )(Songs)(?=[ ]*=)/g, '$1songs')
				.replace(/(==[ ]*Heraldic )(Items)(?=[ ]*=)/g, '$1items')
				.replace(/(==[ ]*Campaign )C(redits)(?=[ ]*=)/g, '$1c$2')
				.replace(/(==[ ]*Combat )C(hronicle)(?=[ ]*=)/g, '$1c$2')
				.replace(/(==[ ]*[\w\s]+? )(International Trips)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(\|\s*(?:\w+_|)colou?rs\s*=\s*[A-Z])([\w ,&]+)(?=[\n|}])/gi, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==\w+) M(atch(?:es|))\b/gi, '$1 m$2')
				.replace(/(==\w+)[-–\s]B(acks?)\b/gi, '$1-b$2')
				.replace(/(==\w+)[-–\s]E(ight)/gi, '$1-e$2')
				.replace(/(==(?:Top|Bottom))[-–\s]H(alf)\b/gi, '$1 h$2')
				.replace(/(==(?:Scrum|Fly))[-–\s]H(alf|alves)\b/gi, '$1-h$2')
				.replace(/(==\w+)[-–\s]Q(uarters?)\b/gi, '$1-q$2')
				// within links and pipes
				.replace(/((?:'''|\|)(?:[Hh]alf|[Ff]ull))[-–\s]B(acks?(?:'''|\]\]))/gi, '$1 b$2')
				.replace(/((?:'''|\|)\w+)[-–\s]F(orwards?(?:'''|\]\]))/gi, '$1 f$2')
				.replace(/((?:'''|\|)(?:[Oo]ne|[Tt]hree|[Ff]our||[Ff]ive))[-–\s]E(ights?(?:'''|\]\]))/gi, '$1-e$2')
				.replace(/((?:'''|\|)\w+)[-–\s]H((?:alf|alves)(?:'''|\]\]))/gi, '$1-h$2')
				.replace(/((?:'''|\|)(?:[Oo]ne|[Tt]hree|[Ff]our))[-–\s]Q(uarters?(?:'''|\]\]))/gi, '$1-q$2')
				.replace(/((?:'''|\|)Population)[\s]D(ensity(?:'''|\s?\|))/gi, '$1 d$2')
				.replace(/((?:'''|\|)Population)[\s]P(rojection(?: \w+|)(?:'''|\s?\|))/gi, '$1 p$2')
				// improper capitalisation within infobox strings
				.replace(/(, |>|\band )A(cademic|ctor|ctress|ctivist|nimator|rranger|rtist|rt critic|strologer|thlete|uthor)(?= ?[\n,<|])/g, '$1a$2')
				.replace(/(, |>|\band )B(allet|iography|roadcaster|usiness(?:wo|)man)(?= ?[\n,<|])/g, '$1b$2')
				.replace(/(, |>|\band )C(hef|olumnist|o-\w+|omedian|omposer|onsultant|ritic|urator)(?= ?[\n,<|])/g, '$1c$2')
				.replace(/(, |>|\band )D(entist|esigner|j|irector|is[ck] jockey|ocumentary maker|ramatist)(?= ?[\n,<|])/g, '$1d$2')
				.replace(/(, |>|\band )E(ditor|ditor[ -]in[ -]chief|ducator|ngineer|ntertainer|ntrepreneur|nvironmentalist|ssayist|xecutive producer|xplorer)(?= ?[\n,<|])/g, '$1e$2')
				.replace(/(, |>|\band )F(ashion (?:designer|model)|iction|ilm(?: critic|director|[- ]?maker|producer))(?= ?[\n,<|])/g, '$1f$2')
				.replace(/(, |>|\band )G(raphic designer)(?= ?[\n,<|])/g, '$1g$2')
				.replace(/(, |>|\band )H(acker|istorian|istorical fiction)(?= ?[\n,<|])/g, '$1h$2')
				.replace(/(, |>|\band )J(ournalist)(?= ?[\n,<|])/g, '$1j$2')
				.replace(/(, |>|\band )L(awyer|eader|ecturer|ibrarian|iterary editor|yricist)(?= ?[\n,<|])/g, '$1l$2')
				.replace(/(, |>|\band )M(ayor|athematician|odel|usician|ulti-instrumentalist)(?= ?[\n,<|])/g, '$1m$2')
				.replace(/(, |>|\band )M(usic (?:arranger|composer|critic|director|producer))(?= ?[\n,<|])/g, '$1m$2')
				.replace(/(, |>|\band )N(arrator|ovelist)(?= ?[\n,<|])/g, '$1n$2')
				.replace(/(, |>|\band )O(rator)(?= ?[\n,<|])/g, '$1o$2')
				.replace(/(, |>|\band )P(erformance artist|erformer|hilosopher|hilosophy|hotographer|laywright|oet|oetry|olitical activist|olitician|laywright|riest|resenter|roducer|rofessor|olitical commentator|ublic speaker|ublicist|ublisher|undit)(?= ?[\n,<|])/g, '$1p$2')
				.replace(/(, |>|\band )R(ecord producer|eporter)(?= ?[\n,<|])/g, '$1r$2')
				.replace(/(, |>|\band )S(ailor|cholar|cientist|creenwriter|culptor|oldier|olicitor|inger.songwriter|ong-?writer|peaker|tockbroker)(?= ?[\n,<|])/g, '$1s$2')
				.replace(/(, |>|\band )S(tand[- ]?up) C(omed(?:ian|))(?= ?[\n,<|])/g, '$1s$2 c$3')
				.replace(/(, |>|\band )T(eacher|elevision|heatr(?:e|ical) (?:critic|director|producer)|ranslator)(?= ?[\n,<|])/g, '$1t$2')
				.replace(/(, |>|\band )V(oice actor)(?= ?[\n,<|])/g, '$1v$2')
				.replace(/(, |>|\band )W(riter)(?= ?[\n,<|])/g, '$1w$2')
				// rem inappropriate
				.replace(/((?:occupation|profession)[ ]*=[^\n]*)(?:, (?:activ|philanthrop)ist|Member of Parliament)(?=[^\n]*\n[ ]*\|)/gi, '$1')
				.replace(/((?:occupation|profession)[ ]*=[ ]*)(?:(?:\[\[[^|\]]+\||)Member of Parliament\]\])(?=[^\n]*\n[ ]*\|)/gi, '$1Politican')
				.replace(/((?:instrument|occupation|products|profession)[ ]*=[ ]*[A-Z]+)([a-z]+[^=|}]+)(?=\n[ ]*\|)/gi, '$1{{' + 'subst:' + 'lc:$2}}')
				// other improper capitalisation
				.replace(/((?:==?|\||\()[ ]*[\w\s]+? )H(eld|istory|onou?rs)(?=[ ]*=)/g, '$1h$2')
				.replace(/((?:==?|\||\()[ ]*(?:1st|2nd|3rd|\dth) )M(atch)/g, '$1m$2')
				.replace(/((?:==?|\||\()[ ]*(?:1st|2nd|3rd|\dth) )F(inal)/g, '$1f$2')
				.replace(/((?:==?|\||\()[ ]*(?:First|Second|Third|Fourth|[1-4](?:st|nd|rd|th)) )Q(uarter)/g, '$1q$2')
				.replace(/((?:==?|\||\()[ ]*(?:First|Second|Third|Fourth|[1-4](?:st|nd|rd|th)) )R(ound)/g, '$1r$2')
				.replace(/(\W[a-z]+ )[Qq](uarter)[\- ]F(inal)/g, '$1q$2-f$3')
				.replace(/((?:==?|\||\()[ ]*[Qq]uarter|[Ss]emi)[\- ]?F(inal)/gi, '$1-f$2')
				.replace(/(\W[a-z]+ )[Ss](emi)[\- ]F(inal)/g, '$1s$2-f$3')
				.replace(/(==[ ]*Overall )(Team [Rr]ecords?)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*(?:CFL|N[BFH]L) )C(oaching )[Rr](ecords?)(?=[ ]*=)/g, '$1c$2r$3')
				.replace(/(==[ ]*[-\w\s]+? )C(areer )S(tatistics)(?=[ ]*=)/g, '$1{{' + 'subst:' + 'lc:$2}}')
				.replace(/(==[ ]*[\w\s]+? (?:and |& |))S(eason|quad|tyle|taff|tage|tatistics)(?=[ ]*=)/g, '$1s$2')
				.replace(/\b(Bowling |Batting )S(tyle)\b/g, '$1s$2')
				.replace(/\b([Aa]ll)[- ]R(ounder)\b/gi, '$1-r$2')
				.replace(/\b(Wicket)[- ]K(eeper)\b/gi, '$1-k$2')
				.replace(/([Rr]ight|[Lr]eft)[- ]([Aa]rm (?:\[\[(?:[^|\[\]]+\||))(?:[Oo]rthodox|(?:[Ll]eg|[Oo]ff)[- ][Ss]pin|[Mm]edium(?: [Ff]ast|)|[Ff]ast(?: [Mm]edium|))\]\])/g, '$1-{{' + 'subst:' + 'lc:$2}}')
				.replace(/((?:\[\[[^|\[\]]+\|)(?:[Rr]ight|[Lr]eft))[- ]([Aa]rm (?:[Oo]rthodox|(?:[Ll]eg|[Oo]ff)[- ][Ss]pin|[Mm]edium(?: [Ff]ast|)|[Ff]ast(?: [Mm]edium|))\]\])/g, '$1-{{' + 'subst:' + 'lc:$2}}')
				.replace(/\b(Fast)[-– ]([Mm]edium [Bb]owler)\b/g, '$1–{{' + 'subst:' + 'lc:$2}}')
				.replace(/\b([Ff]ast |[Mm]edium )B(owler)\b/g, '$1b$2')
				.replace(/\b([Ff]ast|[Ss]low)[-– ]((?:lef|righ)t-[Aa]rm [Bb]owler)\b/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/\b(fast)[- ]B(owler)\b/g, '$1-b$2')
				.replace(/\b([Ll]eg|[Oo]ff)[- ]([Ss](?:pin )(?:Bowler|))\b/g, '$1-{{' + 'subst:' + 'lc:$2}}')
				.replace(/(== ?\w )(League Table)/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Contract) +(Detail|Length)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/((?:\||==)\s*Current) +(Club|Line-?up|Roster|Team)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Points|Pts) +(Ag(?:ain|)st|Diff(?:erence|)|For)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(== ?Top) +(scorers(?: in Order of League Goals|))/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(== ?Touring )P(arty)/g, '$1p$2')
				.replace(/((?:==|[|!])\s*(?:\d+ Season |Current |Former ))P(layers)/g, '$1p$2')
				.replace(/(== ?\d+ Gains & )L(osses)/g, '$1l$2')
				.replace(/(== ?\d+ Signings & )T(ransfers)/g, '$1t$2')
				.replace(/(== ?\w+) +(Results & Fixtures)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(== ?\w+) +(and Capacity)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(== ?Accidents[^=]+)I(ncidents)/g, '$1i$2')
				.replace(/(Airport) +(Name|Code)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Bonus )P(oints|ts)/g, '$1p$2')
				.replace(/(Broadcast )D(ates?)/g, '$1d$2')
				.replace(/(Busiest) +((?:International |Domestic |) *(?:Flight|Routes(?: Out [Oo]f|)))/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(City ) ?S(erved)/g, '$1s$2')
				.replace(/(br(?: ?\/|)>|Aircraft |Passenger |[Ff]reight )M(ovement)/gi, '$1m$2')
				.replace(/(br(?: ?\/|)>|Total |Domestic |International )P(assenger)/g, '$1p$2')
				.replace(/(Date (?:and|&) )T(ime)/gi, '$1t$2')
				.replace(/(\|\s*(?:Date|Years?)) ((?:[Oo]f |)[A-Z]\w+)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(\|+\s*)Hall \d[\.,] ?/g, '$1')
				.replace(/(Did) +([Nn]ot (?:[Ee]nter|[Pp]articipate|[Qq]ualify))/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(: Estimated [Vv]otes by) +EU P(arty)/gi, '{{' + 'subst:' + 'lc:$1}}EU party')
				.replace(/(First|Second|Third|(?:Four|Fif|Six|Seven|Eigh|Nin|Ten|\d)th) +(Places?(?: Match|))/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Group )S(tage)/gi, '$1s$2')
				.replace(/(Seasonal )C(harter)/g, '$1c$2')
				.replace(/(Term )((?:[Oo]f |)[A-Z]\w+)/g, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Top )C(arrier)/g, '$1c$2')
				.replace(/(Winter |Summer ) ?S(easonal)/g, '$1s$2')
				.replace(/(Until the )E(nd of)/gi, '$1e$2')
				.replace(/(Former |Last |New |Previous )C(lub)/gi, '$1c$2')
				.replace(/(Former |Current )A(rtists)/gi, '$1a$2')
				.replace(/(Former |Current )M(embers)/gi, '$1m$2')
				.replace(/(Band )M(embers)/gi, '$1m$2')
				.replace(/(Years |When )S(igned)/gi, '$1s$2')
				.replace(/(Match )I(nformation)/gi, '$1i$2')
				.replace(/(\|\s*\w+ )S(taff\b)(?=\s?\w)/gi, '$1s$2')
				.replace(/N(ational Distribution of Seats)/gi, 'N{{' + 'subst:' + 'lc:$1}}')
				.replace(/([-–]\s?Won (?:Gold|Silver|Bronze) Medal)/gi, '{{' + 'subst:' + 'lc:$1}}')
				.replace(/(Tour|Test|International) +M(atch)/gi, '$1 m$2')
				.replace(/(Oppo)(?:sing [Tt]eam)/g, '$1nent')
				.replace(/(by )O(pponent)/g, '$1o$2')
				.replace(/(Tournaments(?:<br>| ))(Met)/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(W&ndash;L(?:<br>| ))(Record)/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Largest(?:<br>| ))(Victory|Defeat)/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/(Current(?:<br>| ))(Streak)/gi, '$1 {{' + 'subst:' + 'lc:$2}}')
				.replace(/\b(st|nd|rd|th) G(rade)\b/g, '$1 g$2')
				.replace(/(\'Further )R(eading)(?=\')/g, '$1r$2')
				.replace(/(\w )A(nd|t) A(n? \w)/g, '$1a$2 a$3')
				.replace(/(\w )A(nd|t) (My \w)/g, '$1a$2 $3')
				.replace(/(\w )A(nd|t) T(he \w)/g, '$1a$2 t$3')
				.replace(/(\w )By A(n? \w)/g, '$1by a$2')
				.replace(/(\w )By (My \w)/g, '$1by $2')
				.replace(/(\w )By T(he \w)/g, '$1by t$2')
				.replace(/(\w )For A(n? \w)/g, '$1for a$2')
				.replace(/(\w )For (My \w)/g, '$1for $2')
				.replace(/(\w )For T(he \w)/g, '$1for t$2')
				.replace(/(\w )In A(n? \w)/g, '$1in a$2')
				.replace(/(\w )In (My \w)/g, '$1in $2')
				.replace(/(\w )In T((?:he|o) \w)/g, '$1in t$2')
				.replace(/(\w )I(nto \w)/g, '$1i$2')
				.replace(/(\w )O(f|n|r) A(n? \w)/g, '$1o$2 a$3')
				.replace(/(\w )O(f|n|r) (My \w)/g, '$1o$2 $3')
				.replace(/(\w )O(f|n|r) T(he \w)/g, '$1o$2 t$3')
				.replace(/(\w )To A(n? \w)/g, '$1to a$2')
				.replace(/(\w )To (My \w)/g, '$1to m$2')
				.replace(/(\w )To T(he \w)/g, '$1to t$2')
				.replace(/(\w )With A(n? \w)/g, '$1with a$2')
				.replace(/(\w )With M(y \w)/g, '$1with M$2')
				.replace(/(\w )With T(he \w)/g, '$1with t$2')
				.replace(/(\w )A(t \w)/g, '$1a$2')
				.replace(/(\w )I(n \w)/g, '$1i$2')
				.replace(/([Rr]unners?)[\- ]U(p\b)/g, '$1-u$2')
				.replace(/([Rr]unner)[\- ][Uu](?:ps)\b/g, '$1s-up')
				.replace(/([Pp]lay)[\- ][Oo](ffs?)/g, '$1-o$2')
				.replace(/(\b\d{4})-P(resent\b)/gi, '$1–p$2')
				.replace(/(\b\d{4}) - P(resent\b)/gi, '$1 – p$2')
				.replace(/(\b\d{4}(?:–| – ))P(resent\b)/g, '$1p$2')
				.replace(/(\w (?:\[\[|))O(ff-Broadway\b)/g, '$1O$2')
				.replace(/((?:Sonata|Symphony|Concerto|Prelude)(?: No\. \d\d?|)) in a((?:-flat|) [Mm](?:inor|ajor))/g, '$1 in A$2')   
				// remove flagicons from country, birth and death
				.replace(/((?:birth|death|place|captain|chairman|club|coach|manager|headquarters|citizenship|nationality|occupation|origin|party|region_served|stadium)\s*=\s*)(?:\{\{flag ?icon\|[^{}]+(?:\|[^{}]+|)\}\} ?|\[\[(?:File|Image):Flag of [^\]]\]\] ?)/gi, '$1')    
				.replace(/((?:birth|death)(?:_?place|)\s*=\s*)\{\{flag(?:country|u|)\|([^{}|]+)(?:\|[^{}]+|)\}\}/gi, '$1$2')
				.replace(/((?:(?:birth|death)(?:_?place|)|citizenship|residence|nationality)\s*=\s*)(?:\{\{flag ?icon\|[^{}]+(?:\|[^{}]+|)\}\} ?|\[\[(?:File|Image):Flag of [^\]]+\]\] ?)/gi, '$1$2')
				.replace(/((?:city|location|residence|venue)\s*=\s*)\{\{flag(?:country|)\|([^{}|]+)(?:\|[^{}]+|)\}\}/gi, '$1$2')
				.replace(/((?:city|location|residence|venue)\s*=\s*(\[\[[^|\]]+\|[^|\]]+\]\]|)[^{}|]*)(?:\{\{flag ?icon\|[^{}]+(?:\|[^{}]+|)\}\}|\[\[(?:File|Image):Flag of [^\]]+\]\]) ?/gi, '$1')
				.replace(/((?:country|location|nationality|residence)\s*=\s*)\{\{flagu?\|([^{}|]+)(?:\|[^{}]+|)\}\}/gi, '$1$2')
				.replace(/((?:champs|name|leader|scorer)\s*=\s*)\{\{leagueicon?\|([^{}|]+)(?:\|[^{}]+|)\}\}/gi, '$1')
				// strip bare facilities icons
				.replace(/\[\[(File|image):Feature (accessible|elevators|parking|suburban buses)\.svg\|\d\d?px(?:\|[^\]]+)?\]\]\s*/gi, '') 
				// remove scroll bar for reflists 
				.replace(/(References ?={1,4}[\n\r])[\r\n\s]*<div class=[^>]*>([\S\s]*?)<\/div>/gi, '$1$2')
				// rem redundant spaces underlining and punctuation
				.replace(/(.)[“„”«»](.)/gi, '$1\"$2')
				.replace(/(\w)[‘’′](s|t)\b/gi, '$1\'$2')
				.replace(/([\w;,\]\)>] ) +([\[(]|[a-z\d])/gi, '$1$2')
				.replace(/(^\.U\.)[ ]+((?:S|K)\.)/gi, '$1$2')
				.replace(/(<\/?ref(?: name=[^<>\/]*?|)>)[ ,\.]*(<ref)/gi, '$1$2')
				.replace(/[ ]{1,3}(<\/?ref(?:>| >| n))/gi, '$1')
				.replace(/(\d),&nbsp;([12]\d{3}\b)+/gi, '$1, $2')
				.replace(/(\d)(?:&nbsp;| )%/gi, '$1%')
				.replace(/(&nbsp;)[ ](–|&ndash;)/gi, '$1$2')
				.replace(/(&nbsp;| )(?:—|&mdash;)(&nbsp;| )/gi, '$1–$2')
				.replace(/\b(US|UK|A(?:US|)|C(?:AN|)|NZ|HK) ([$£¥€])(\d)/g, '$1$2$3')
				.replace(/([$£¥€]) (\d)/gi, '$1$2')
				.replace(/(\{\{(?:INR|Indian Rupee)\}\}|Rs\.?)(\d+)/g, '$1 $2')
				.replace(/\{\{AUD\}\} ?(\d+)/g, 'A$$1')
				// rem 'external' wiktionary links
				.replace(/\[https?:\/\/en\.wiktionary\.org\/wiki\/[\w]*[ ](\w[^\]]*)\]/gi, '$1')
				// rem linked copyright symbol 
				.replace(/(\[\[copyright\|©\]\] |©)/gi, '')
				// rem leading and lagging spaces within wikilinks
				.replace(/(\[\[)[ ]+([^\[\]\|]*?)[ ]*(\]\])/gi, '$1$2$3')
				.replace(/(\[\[)[ ]*([^\[\]\|]*?)[ ]+(\]\])/gi, '$1$2$3')
				.replace(/(\[\[[^\[\]\|]*?[ ])[ ]+([^\[\]]*?\]\])/gi, '$1$2')
				.replace(/(\[\[[^\[\]\|]*?)[ ]+\|[ ]*([^\[\]]+\]\])/gi, '$1|$2')
				.replace(/\[\[([^\[\]\(\)\|:]*)( \([^\[\]\(\)\|]*(?:album|film|magazine|newspaper|song)\))(\]\])/gi, '[[$1$2|$1$3')
				// symbol for 'times' and dashes
				.replace(/(\d) x (\d )/gi, '$1&nbsp;×&nbsp;$2')
				.replace(/\s(A[cglmrstu]|B[ahikrad]?|C[adeflmno]|D[bsyrsu]|E[rsu]|F[elmr]?|G[adef]|H[fgos]|I[nr]?|Kr?|L[aruv]|M[dgnot]|N[abdeiop]?|Os?|P[abdmortu]?|R[abefghnu]|S[bcegimnr]?|T[abcehilm]?|U[ub][neopst]|V|W|Xe|Yb?|Z[nr])-(Br|Cl?|F|H|I|N|O|P|Se?)\s/g, ' $1–$2 ')
				.replace(/&mdash;/gi, '—')
				.replace(/([\w\d]) — (?=[\w\d])/gi, '$1 – ')
				.replace(/(\D7\d7)–(\d(?:00|)\D)/gi, '$1-$2')
				// inserting a white space between wikilinks to avoid errors upon unlinking
				.replace(/(\]\][\.,]?)(\[\[)(?!file|image)/gi, '$1 $2')
				// full stop and nbsp fixes
				// protection for strings within wikilinks
				.replace(/(\[(?:[^\|\]]*)\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})([ ]*(?:[cgkm])[^\|\]]*?[\|\]])/gi, '$1♭$2')
				.replace(/(\[(?:[^\|\]]*)(?:\d?\d[:\.]\d?\d| \d?\d))([ ]*(?:[ap]\.m\.|[ap]m)[^\|\]]*?[\|\]])/gi, '$1♭$2')
				// degrees and titles
				.replace(/(Ph)(?:\.\s?|\s)(D)\.?/g, '$1$2')
				.replace(/\b(B|M)(?:\.\s?|\s)(Arch|Comm|Ed|Eng|Sc|Tech)\.?(?=\W)/g, '$1$2')
				.replace(/(\|[A-Z])\.\s?([A-Z])\.\s?([A-Z])\.\s?([A-Z])\.?\]\]/g, '$1$2$3$4]]')
				.replace(/(\|[A-Z])\.\s?([A-Z])\.\s?([A-Z])\.?\]\]/g, '$1$2$3]]')
				.replace(/(\|[A-Z])\.\s?([A-Z])\.?\]\]/g, '$1$2]]')
				// times of day, time ranges
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:am|AM)(?=[^\w\-])/g, '$1&nbsp;am')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:pm|PM)(?=[^\w\-])/g, '$1&nbsp;pm')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Aa]\.[Mm]\.)(?=\S[^\w\-])/g, '$1&nbsp;am')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Pp]\.[Mm]\.)(?=\S[^\w\-])/g, '$1&nbsp;pm')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Aa]\.[Mm])(?=\.[\s\W][A-Z])/g, '$1&nbsp;am')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Pp]\.[Mm])(?=\.[\s\W][A-Z])/g, '$1&nbsp;pm')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Aa]\.[Mm])(?=\.<)/g, '$1&nbsp;am')
				.replace(/\b(\d?\d[:\.]\d?\d| \d?\d)(?:[ ]*|&nbsp;)(?:[Pp]\.[Mm])(?=\.<)/g, '$1&nbsp;pm')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:kw)\b/gi, '$1&nbsp;kW')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:khz)\b/gi, '$1&nbsp;kHz')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:mhz)\b/gi, '$1&nbsp;MHz')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:ghz)\b/gi, '$1&nbsp;GHz')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:kph|kphr|kmh|kmhr|kmph|kmphr|km\/hr)\b/gi, '$1&nbsp;km/h')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:m\.p\.h\.)\b/gi, '$1&nbsp;mph')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(gm|kg|km)s?\b/g, '$1&nbsp;$2')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*KMs?\b/gi, '$1&nbsp;km')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*KGs?\b/gi, '$1&nbsp;kg')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*(?:K(g|m))s?\b/gi, '$1&nbsp;k$2')
				.replace(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})[ ]*cms?/gi, '$1&nbsp;cm')
				.replace(/([^\|\[=]\d{1,3})\s(m|b|tr)illion(\b[^}])/g, '$1&nbsp;$2illion$3')
				.replace(/(\d)(?:&nbsp;|\s)?C(entimet(?:er|re))/g, '$1&nbsp;c$2')
				.replace(/(\d)(?:&nbsp;|\s)?K(ilomet(?:er|re))/g, '$1&nbsp;k$2')
				.replace(/(\d)(?:&nbsp;|\s)?KM\b/g, '$1&nbsp;km')
				// turn letter 'x' into symbol '×'
				.replace(/(\d)\sx\s(\d{1,3})\sin\s\(/gi, '$1 × $2 in (')
				.replace(/(\d)\sx\s(\d{1,3})\sinch\s/gi, '$1 × $2 inch ')
				// convert degree symbols into ° symbol, ensure preceding space
				.replace(/&deg;/g, '°')
				// Celsius spelling errors
				.replace(/(?:celsius|celcius|centigrade)/gi, 'Celsius')
				//Fix common naming error (be careful with this one)
				// Celsius or Fahrenheit
				.replace(/(\d)&nbsp;(?:[°º]|deg|degree|degrees)&nbsp;([CF]\W)/g, '$1&nbsp;°$2')
				.replace(/(\d)(?:[°º]|deg|degree|degrees)&nbsp;([CF]\W)/g, '$1&nbsp;°$2')
				.replace(/(\d)&nbsp;(?:[°º]|deg|degree|degrees)([CF]\W)/g, '$1&nbsp;°$2')
				.replace(/(\d)(?:\s|)(?:[°º]|deg|degree|degrees)(?:\s|)([CF]\W)/g, '$1&nbsp;°$2')
				.replace(/(\d)(?:\s|&nbsp;)?(?=\[\[Celsius\|[°º]C\]\])/gi, '$1&nbsp;$2')
				.replace(/(\d)(?:\s|&nbsp;)?(?=\[\[Fahrenheit\|[°º]F\]\])/gi, '$1&nbsp;$2')
				.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-|&nbsp;|)[°º]F([:;,\.?!]?\s[^\d\(\)\/\\])/g, '$1{{convert|$2|°F|°C|abbr=on}}$3')
				.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-|&nbsp;|)(?:deg|degree|degrees)(?:\s|-|&nbsp;|)Fahrenheit([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|°F|°C}}$3')
				// remove commas from numerical values in convert template
				.replace(/(\{convert\|\d+),(\d)/gi, '$1$2')
				.replace(/(\{convert\|\d+),(\d)/gi, '$1$2')
				.replace(/(\{convert\|\d+),(\d)/gi, '$1$2')
				.replace(/(\{convert\|\d+),(\d)/gi, '$1$2')
				.replace(/(\{convert\|\d+),(\d)/gi, '$1$2')
				// inappropriate unit pairs for convert template
				.replace(/(\{\{convert\s*\|\d+(?:\.\d|)\|acre\|)m2(?=[|}])/gi, '$1ha')
				// remove leading zeros from convert template
				.replace(/(\{\{convert\s*\|)\s*0+(?=[1-9])/gi, '$1$2')
				// e-acute accent in spelling
				.replace(/\b(caf|clich)e\b/g, '$1é')
				// hash fixes
				.replace(/([^=] )#(\d{1,3}[,\.]?[<\s])/gi, '$1No. $2')
				// per WP:COMMONALITY
				.replace(/([Ff])reshman (year)/g, '$1irst $2')
				.replace(/([Ss])ophomore (album|year)/g, '$1econd $2')
				// remove Crores and Lakhs in templates converting to USD 
				.replace(/\{\{INR Convert[ ]*\|[ ]*/gi, '{{INRConvert|')
				.replace(/(\{INRConvert\|-?\d{2,})8\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$19$2')
				.replace(/(\{INRConvert\|-?\d{2,})7\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$18$2')
				.replace(/(\{INRConvert\|-?\d{2,})6\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$17$2')
				.replace(/(\{INRConvert\|-?\d{2,})5\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$16$2')
				.replace(/(\{INRConvert\|-?\d{2,})4\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$15$2')
				.replace(/(\{INRConvert\|-?\d{2,})3\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$14$2')
				.replace(/(\{INRConvert\|-?\d{2,})2\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$13$2')
				.replace(/(\{INRConvert\|-?\d{2,})1\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$12$2')
				.replace(/(\{INRConvert\|-?\d{2,})0\.[5-9]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$11$2')
				.replace(/(\{INRConvert\|-?\d{3,})\.[0-4]\d*[ ]*(\|c(?:\|-?\d|)\}\})/gi, '$1$2')
				.replace(/(\{INRConvert\|)(-?\d+)0000[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2|b$3$4')
				.replace(/(\{INRConvert\|)(-?\d+)0[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2|m$3$4')
				.replace(/(\{INRConvert\|)(-?\d+)(\d)[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2.$3|m$4$5')
				.replace(/(\{INRConvert\|)(-?\d+)[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$200000$3$4')
				.replace(/(\{INRConvert\|)(-?\d+)\.(\d)[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2$30000$4$5')
				.replace(/(\{INRConvert\|)(-?\d+)\.(\d)(\d)[ ]*\|l(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2$3$4000$5$6')
				.replace(/(\{INRConvert\|)(-?\d+)\.(\d)[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2$3|m$4$5')
				.replace(/(\{INRConvert\|)(-?\d+)\.(\d)(\d+)[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2$3.$4|m$5$6')
				.replace(/(\{INRConvert\|)(-?\d+)00[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2|b$3$4')
				.replace(/(\{INRConvert\|)(-?\d+)(\d)0[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2.$3|b$4$5')
				.replace(/(\{INRConvert\|)(-?\d+)(\d\d)[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$2.$3|b$4$5')
				.replace(/(\{INRConvert\|)(-?\d+)[ ]*\|c(\|-?\d|)(?:\|nolink=yes|)((?:\|year=\d4|)\}\})/gi, '$1$20|m$3$4')
				.replace(/(\{INRConvert\|-?\d{2,})8\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$19$2')
				.replace(/(\{INRConvert\|-?\d{2,})7\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$18$2')
				.replace(/(\{INRConvert\|-?\d{2,})6\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$17$2')
				.replace(/(\{INRConvert\|-?\d{2,})5\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$16$2')
				.replace(/(\{INRConvert\|-?\d{2,})4\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$15$2')
				.replace(/(\{INRConvert\|-?\d{2,})3\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$14$2')
				.replace(/(\{INRConvert\|-?\d{2,})2\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$13$2')
				.replace(/(\{INRConvert\|-?\d{2,})1\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$12$2')
				.replace(/(\{INRConvert\|-?\d{2,})0\.[5-9]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$11$2')
				.replace(/(\{INRConvert\|-?\d{3,})\.[0-4]\d*[ ]*(\|[bm](?:\|-?\d|)\}\})/gi, '$1$2')
				// currency notation placements  [$£₤¥€]
				.replace(/\s(\$(?:\d+\.\d\d?|\d{1,3}|\d{1,3},\d{3}))((?:\s|&nbsp;)(?:m|b|tr)illion|)[ ]*(?:US(?:[D$]|\s?dollars?))\b/gi, ' US$1$2')
				// remove surprise or 'Easter egg' diversions linking unit name to orders of magnitude articles
				.replace(/\[\[1\s?_?E\s?[\-\+]?\d{1,2}\s?..?\|([^\]]{1,50})\]\]/gi, '$1')
				.replace(/\[\[Orders\sof\smagnitude\s\([^\)]+\)\|([^\]]{1,50})\]\]/gi, '$1')
				.replace(/(\d)♭(\w| )/g, '$1$2')
				// remove useless comments
				.replace(/<!-- Metadata: see \[\[Wikipedia:Persondata\]\]\. -->/gi, '')
				// deleted image cleanup
				.replace(/<!-- Deleted image removed:[^>]*? -->\n*/gi, '')
				// AFC comments cleanup
				.replace(/<!-- Inline citations added to your article will automatically display[^>]*? -->\n*/gi, '')
				.replace(/<!--- See \[\[Wikipedia\:Footnotes\]\] on how to create references using*?-->/gi, '')
				// AFC subst submit error
				.replace(/<code><nowiki>{{<\/nowiki>\[\[Template:Submit\|subst:submit\]\]<nowiki>}}<\/nowiki><\/code>/gi, '')
				.replace(/<nowiki>{{<\/nowiki>\[\[Template:Submit\|subst:submit\]\]<nowiki>}}<\/nowiki>/gi, '')
			.options({ minor: false, watch: false })
			.clickDiff();
	}
});
pathoschild.TemplateScript.add([
	{
		name:'Com cat inline',
		script: function(editor) {
		editor
			.replace(/\{\{([Cc])ommons category(.*?)/gi, '{{Commons category-inline')
			.setEditSummary('Substituting {{[[Template:Commons category-inline|commons category-inline]]}} for {{[[Template:Commons category|commons category]]}} per [[MOS:LAYOUTEL]]')
			.clickDiff();
		}
	},
	{
		name:'RCats',
		script: function(editor) {
		editor
			.replace(/redr|Rcat shell|Redirect shell|Rcatsh|Rcatshell|R shell|R cat shell|Rshell|R category shell|Rcat Shell|Redirect banner shell|Cat Shell|cat banner holder|redirect category holder|catholder|catgroup|redirect category group|redirect cat shell|r cs/gi, 'Redirect category shell')
			.replace(/a2r/gi, 'R avoided double redirect')
			.replace(/r alt sci/gi, 'R from alternative scientific name')
			.replace(/r anch/gi, 'R to anchor')
			.replace(/r common/gi, 'R to scientific name')
			.replace(/r from broader/gi, 'R from less specific name')
			.replace(/r hist/gi, 'R with history')
			.replace(/r hyphen/gi, 'R from alternative spelling')
			.replace(/r low/gi, 'R from other capitalisation')
			.replace(/r member/gi, 'R from member')
			.replace(/r mis/gi, 'R from misspelling')
			.replace(/r mishyphen/gi, 'R from incorrect hyphenation')
			.replace(/r mono/gi, 'R from monotypic taxon')
			.replace(/r numeral/gi, 'R from numerals')
			.replace(/r person/gi, 'R from person')
			.replace(/r rfc/gi, 'R from RFC')
			.replace(/r song/gi, 'R from song')
			.replace(/r to alt name/gi, 'R from alternative name')
			.replace(/r to sci/gi, 'R to scientific name')
			.replace(/r the/gi, 'R from long name')
			.replace(/r undab/gi, 'R from unnecessary disambiguation')
			.setEditSummary('Substituting template(s) for template shortcut(s) to enable [[User:Wugapodes/Capricorn|Capricorn]] functionality.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Inactive UP blanked',
		script: function(editor) {
		editor
			.set('{{Inactive userpage blanked}}')
			.setEditSummary('Blanking page per [[WP:STALE]] and [[Wikipedia:WikiProject Abandoned Drafts|WikiProject Abandoned Drafts]]; adding {{[[Template:Inactive userpage blanked|inactive userpage blanked]]}}.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Rm delsort people',
		script: function(editor) {
		editor
			.replace(/:<small class(.*?)list of People-related deletion discussions(.*?)UTC\)<\/small>\n*/gi, '')
			.appendEditSummary('Removing delsort-notice for [[Wikipedia:WikiProject Deletion sorting/People|list of People-related deletion discussions]], discussion is already sorted in a more specific category.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Rm delsort US',
		script: function(editor) {
		editor
			.replace(/:<small class(.*?)list of United States of America-related deletion discussions(.*?)UTC\)<\/small>\n*/gi, '')
			.appendEditSummary('Removing delsort-notice for [[Wikipedia:WikiProject Deletion sorting/United States of America|list of United States of America-related deletion discussions]], discussion is already sorted in a state specific category.')
			.clickDiff();
		}
	},
	{
		name:'Rm Multiple issues tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Mm])ultiple issues(.*?)\|\n*/gi, '')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Rm New unreviewed tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Nn])ew unreviewed(.*?)\}\}\n*/gi, '')
			.appendEditSummary('Reviewed, article does not qualify for [[Wikipedia:Criteria for speedy deletion|speedy deletion]], removing {{[[Template:New unreviewed article|new unreviewed article]]}}.')
			.clickDiff();
		}
	},
	{
		name:'Rm OR tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Oo])riginal research(.*?)\}\}\n*/gi, '')
			.setEditSummary('Removing {{[[Template:Original research|original research]]}}, no explanation provided on the talk page, and [[Wikipedia:No original research|original research]] is not readily apparent.')
			.clickDiff();
		}
	},
	{
		name:'Rm orphan tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Oo])rphan(.*?)\}\}\n*/gi, '')
			.setEditSummary('Removing {{[[Template:Orphan|orphan]]}} per [[WP:O]], article has at least three incoming links from other pages in main space [[WP:ORPHANAGE|(you can help!)]]; MOS tweaks &c.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Rm POV tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Pp])([Oo])([Vv])(.*?)\}\}\n*/gi, '')
			.setEditSummary('Removing {{[[Template:POV|POV]]}}, no explanation provided on the talk page.')
			.clickDiff();
		}
	},
	{
		name:'Rm prod blp',
		script: function(editor) {
		editor
			.replace(/\{\{Prod blp(.*?)\}\}/gi, '')
			.appendEditSummary('Removing {{[[Template:Prod blp|prod blp]]}}, article has sources.')
			.options({ minor: false, watch: true })
			.clickDiff();
		}
	},
	{
		name:'Rm short p mon',
		script: function(editor) {
		editor
			.replace(/\{\{([Ss])hort pages monitor(.*?)-->\n*/gi, '')
			.appendEditSummary('Removing {{[[Template:Short pages monitor|short pages monitor]]}} and long comment, the page is significantly longer than 120 bytes and content is acceptable.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Rm Unref tag',
		script: function(editor) {
		editor
			.replace(/\{\{([Uu])nreferenced(.*?)\}\}\n*/gi, '')
			.setEditSummary('Removing {{[[Template:Unreferenced|unreferenced]]}}, article has at least one source.')
			.options({ minor: false, watch: false })
			.clickDiff();
		}
	},
	{
		name:'Replace ref tags',
		script: function(editor) {
		editor
			.replace(/<ref name="(.*?)" \/>/g, '{{r\|"$1"}}')
			.appendEditSummary('Substituting {{[[Template:R|R]]}} for ref tags.')
			.clickDiff();
		}
	},
	{
		name:'BLP referenced to IMDb only',
		script: function(editor) {
		editor
			.replace(/\{BLP unsourced/g, '{BLP unreferenced')
			.replace(/\{BLP unreferenced\|date=/g, '{BLP IMDb-only refimprove\|date=')
			.appendEditSummary('Substituting {{[[Template:BLP IMDb-only refimprove|BLP IMDb-only refimprove]]}} for {{[[Template:BLP unsourced|BLP unsourced]]}}. Referenced to [[IMDb]], {{BLP unsourced}} does not apply.')
			.clickDiff();
		}
	},
		// add your own templates or scripts here
		// ns:0 - Main namespace
		{ 
			category: 'Articles',
			name: 'Robert/Bodil',
			tooltip: '',
			template: '{{Robert Award for Best Danish Film}}\n\n[[Category:Best Danish Film Robert Award winners]]\n[[Category:Best Danish Film Bodil Award winners]]',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Robert Award for Best Danish Film|Robert Award for Best Danish Film]]}}; updating categories',
			forNamespaces: '0'
		},
		{ 
			category: 'Articles',
			name: '{{notability}}',
			tooltip: 'Tag with {{notability}}',
			template: '{{notability|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}\n',
			position: 'before',
			editSummary: 'Questionable notability, tagging per [[WP:ATD-T|policy]]',
			forNamespaces: '0'
		},
		{ 
			category: 'Articles',
			name: 'Archive-url',
			tooltip: '',
			template: ' |archive-url= |archive-date= |dead-url= ',
			position: 'cursor',
			editSummary: 'Adding archive-url etc. to citation',
			forNamespaces: '0'
		},
		{ 
			category: 'Articles',
			name: 'Image spelling notice',
			tooltip: 'Inserts a hidden notice regarding file name spelling',
			template: '<!-- Do NOT change the spelling of the image file! -->',
			position: 'cursor',
			editSummary: 'Inserting hidden comment regarding image in risk of being "spell checked"',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Articles',
			name: 'Long comment',
			tooltip: '{{subst:long comment}} addition to articles <120 bytes',
			template: '\n\n{{subst:long comment}}',
			position: 'after',
			editSummary: 'Placing in [[Category:Monitored short pages]] by addition of {{subst:[[Template:Long comment|long comment]]}}.',
			forNamespaces: '0'
		},
		{ 
			category: 'Infoboxes',
			name: 'Infobox given name',
			template: '{{Infobox given name\n| name                 = \n| image                = <!-- Insert a relevant image for the name. -->\n| image_size           = <!-- The infobox automatically resizes images to a width of 220px. Use this parameter only if the image being used is smaller than 220px. -->\n| caption              = <!-- Insert image caption, which should describe the image used. -->\n| pronunciation        = <!-- Insert the pronunciation(s) of the name. Separate multiple entries with a line break (<br />). -->\n| gender               = <!-- Insert the gender of the name. Use either Female, Male, or Both. -->\n| language             = <!-- Insert the language(s) of the name. Linking is automatic. -->\n| language2            = \n| language3            = \n| name day             = <!-- Insert the date and country of the name day of the name. It should be in [[MONTH DAY]] (COUNTRY) format. Separate multiple entries with a line break (<br />). -->\n| languageorigin       = <!-- Insert the language(s) of origin. Separate multiple entries with a line break (<br/>). Note that this option ties in with the next 3 options. -->\n| origin               = <!-- Insert the original name or word the name is derived from. -->\n| derivation           = <!-- Insert the derivation of the word listed above. -->\n| meaning              = <!-- Insert the meaning(s) of the name. Separate multiple entries with a line break (<br />). -->\n| region               = <!-- Insert the region(s) of origin of the name. Separate multiple entries with a line break (<br />). In addition, link each region to its appropriate article if possible. -->\n| alternative spelling = <!-- Insert the other spellings of the name. Separate multiple entries with a line break (<br />). -->\n| variant forms        = <!-- Insert the variant form(s) of the name. Separate multiple entries with a line break (<br />). However, note the more specific options below. -->\n| shortform            = <!-- Insert the short form(s) of the name. These are not necessarily pet forms, see below. -->\n| nickname             = <!-- Insert the nicknames associated with the name. Separate multiple entries with a line break (<br />). -->\n| petname              = <!-- Insert the pet name(s) associated with the name. -->\n| cognate              = <!-- Insert the cognate(s) associated with the name. -->\n| anglicisation        = <!-- Insert the Anglicisation(s) associated with the name. This is for listing the Anglicised forms of a non-English language name. Note derivative option below. -->\n| derivative           = <!-- Insert the derivative(s) associated with the name. This is for listing the non-English language names that this name has spawned. -->\n| related names        = <!-- Insert name(s) that are related to the name in question. Separate multiple entries with a line break (<br />). In addition, link each name to its appropriate article if possible. -->\n| seealso              = <!-- Insert the names that might not fit the into the other names options above. -->\n| popularity           = <!-- Inserting anything for this field will enable the link to the Popular names article. -->\n| footnotes            = <!-- Insert footnotes or references regarding the information given within this infobox. Separate multiple entries with a line break (<br />). -->\n}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:Infobox given name|infobox given name]]}}',
			forNamespaces: '0'
		},
		{ 
			category: 'Infoboxes',
			name: 'Infobox surname',
			template: '{{Infobox surname\n| name            = \n| image           = <!-- Insert a relevant image for the name. -->\n| image_size      = <!-- The infobox automatically resizes images to a width of 200px. Use this parameter only if the image being used is smaller than 200px. -->\n| caption         = <!-- Insert image caption, which should describe the image used. -->\n| romanization    = <!-- Insert the Romanization(s) of the name if not originally written using the Latin alphabet. Separate multiple entries with a line break (<br/>). -->\n| pronunciation   = <!-- Insert the pronunciation(s) of the name. Separate multiple entries with a line break (<br/>). Use IPA codes if possible. -->\n| gender          = <!-- Insert the gender of the name. Use either Feminine, Masculine, or Unisex. -->\n| feminine        = <!-- (If the name you are using in the \'name parameter\' (the first one, above) is feminine, insert the masculine form(s) of this specific name. -->\n| masculine       = <!-- (If the name you are using in the \'name parameter\' (the first one, above) is masculine, insert the feminine form(s) of this specific name. -->\n| language        = [[Armenian language|Armenian]] [[Arabic name|Arabic]] [[Dutch name|Dutch]] [[English name|English]] [[French name|French]] [[German name|German]] [[Irish name|Irish]] [[Italian name|Italian]] [[Persian name|Persian]] [[Portuguese name|Portuguese]] [[Spanish naming customs|Spanish]]<!-- Insert the language(s) of the name. Note that this is not the language of origin, only the current language(s) of the name. -->\n| languageorigin  = [[Old English]] [[Middle English]] [[Old Saxon]] [[Old Dutch]] [[Middle Dutch]]<!-- Insert the language(s) of origin. Separate multiple entries with a line break (<br/>). Note that this option ties in with the next 3 parameters. -->\n| origin          = [[INSERT NAME (surname)|INSERT NAME]] [[Æthelstan]]<!-- Insert the origin of the name – the original name, or word, that the name is derived from. -->\n| derivation      = \'\'æðel\'\' + \'\'stān\'\'<!-- Insert the derivation of the word listed above. (<br/>). -->\n| meaning         = "noble stone"<!-- Insert the meaning of the derivation above, or the meaning of the original name/word. (<br/>). -->\n| motto           = \n| region          = [[British Isles]]<!-- Insert the region(s) of origin of the name. Separate multiple entries with a line break (<br />). In addition, link each region to its appropriate article if possible. -->\n| variant         = <!-- Insert the variant form(s) of the name – the alternate spellings of the name. However, note the more specific options below. -->\n| cognate         = <!-- Insert the cognate(s) associated with the name. -->\n| anglicisation   = <!-- Insert the Anglicisation(s) associated with the name. This is for listing the Anglicised forms of a non-English language name. Note derivative option below. Also, some surnames are going to many Anglicised forms; only use this parameter if there are a few Anglicised forms. Long lists of names should be in the article-mainspace. -->\n| derivative      = <!-- Insert the derivative(s) associated with the name. This is for listing the non-English language names that this name has spawned. -->\n| seealso         = <!-- Insert the names that might not fit the into the \'other names\' options above. -->\n| family          = <!-- Insert family/families/clans who bear the name. Only insert notable families, preferably ones with articles. -->\n| footnotes       = <ref name="The Internet Surname Database">{{cite web | title=Surname Database: {{SUBST:BASEPAGENAME}} Last Name Origin | website=The Internet Surname Database | url=http://www.surnamedb.com/Surname/{{SUBST:BASEPAGENAME}} | access-date={{SUBST:ISO date}}}}</ref>\n}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:Infobox surname|infobox surname]]}}',
			forNamespaces: '0'
		},
		{ 
			category: 'Inline',
			name: '{{AH|640}}',
			tooltip: 'Hijri year',
			template: '{{AH|}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:AH|AH]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: 'Anchor',
			tooltip: '',
			template: '{{anchor|}}{{subst:anchor comment}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Anchor|anchor]]}} and {{[[Template:Anchor comment|anchor comment]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: 'Authormask',
			tooltip: '',
			template: '|authormask=1',
			position: 'cursor',
			editSummary: 'Adding |authormask=1 to citation',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{BCE|89}}',
			tooltip: 'Before current era',
			template: '{{BCE|link|}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:BCE|BCE]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Cast listing}}',
			tooltip: 'In Cast section',
			template: '{{Cast listing|\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Cast listing|Cast listing]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Circa|1972}}',
			tooltip: '',
			template: '{{Circa|}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Circa|circa]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert ft->m}}',
			tooltip: '',
			template: '{{Convert|1400|ft|m|sigfig=4}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert mi->km}}',
			tooltip: '',
			template: '{{Convert|140|mi|km|sigfig=4}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert cm->in}}',
			tooltip: '',
			template: '{{convert|5.56|cm|in|frac=16}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert ft->m}}',
			tooltip: '',
			template: '{{Convert|641|km2|ha sqmi}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert temp}}',
			tooltip: '',
			template: '{{convert|1|C}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Convert km->mi nmi}}',
			tooltip: '',
			template: '{{convert|5|km|mi nmi}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Convert|convert]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Coord}}',
			tooltip: 'Avoid excessive precision, 0.0001° is <11 m',
			template: '{{Coord||NS||EW|format=dms|display=title}}',
			position: 'cursor',
			editSummary: 'Adding coordinates in {{[[Template:Coord|coord]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: ' format=dms param',
			tooltip: 'Set cursor after a pipe',
			template: 'format=dms|',
			position: 'cursor',
			editSummary: 'Adding format=dms parameter to {{[[Template:Coord|coord]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Dead link}}',
			tooltip: 'Inside ref tags after cite or bracket',
			template: '{{Dead link|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}|fix-attempted=yes}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Dead link|dead link]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline',
			name: '{{Given name}} etc.',
			tooltip: 'Above cats',
			template: '== See also ==\n* {{look from}}\n* {{intitle}}\n* [[INSERT NAME (disambiguation)]]\n\n== References ==\n{{reflist}}\n\n{{given name}}\n<!-- It does not help to add disambig or hndis tags where the page only contains people who share a given name or surname -->',
			position: 'after',
			forNamespaces: '0'
		},
		{ 
			category: 'Inline',
			name: '{{Given name|type=both}} etc.',
			tooltip: 'Above cats',
			template: '== See also ==\n* {{look from}}\n* {{intitle}}\n* [[INSERT NAME (disambiguation)]]\n\n== References ==\n{{reflist}}\n\n{{given name|type=both}}\n<!-- It does not help to add disambig or hndis tags where the page only contains people who share a given name or surname -->',
			position: 'after',
			forNamespaces: '0'
		},
		{ 
			category: 'Inline',
			name: '{{Surname}} etc.',
			tooltip: 'Above cats',
			template: '== See also ==\n* {{intitle}}\n* [[INSERT SURNAME (disambiguation)]]\n\n== References ==\n{{reflist}}\n\n{{surname}}\n<!-- It does not help to add disambig or hndis tags where the page only contains people who share a given name or surname -->',
			position: 'after',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{According to whom}}',
			tooltip: '',
			template: '{{According to whom|statement|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:According to whom|according to whom]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Better source}}',
			tooltip: '',
			template: '{{Better source|reason=Summary of problem|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Better source|better source]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Cn span}}',
			tooltip: '',
			template: '{{Citation needed span|text=PASSAGE TO BE SOURCED|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Citation needed span|citation needed span]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Cn (lead)}}',
			tooltip: '',
			template: '{{Citation needed (lead)|reason=YOUR EXPLANATION HERE|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Citation needed (lead)|citation needed (lead)]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Cn}}',
			tooltip: '',
			template: '{{Citation needed|reason=YOUR EXPLANATION HERE|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Citation needed|citation needed]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Irrelevant citation}}',
			tooltip: '',
			template: '{{Irrelevant citation|reason=YOUR EXPLANATION HERE|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Irrelevant citation|irrelevant citation]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Self-published inline}}?',
			tooltip: 'Maybe self-published',
			template: '{{Self-published inline|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Self-published inline|self-published inline]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Self-published inline}}',
			tooltip: 'Certainly self-published',
			template: '{{Self-published inline|certain=yes|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Self-published inline|self-published inline]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{Third-party inline}}',
			tooltip: '',
			template: '{{Third-party inline|reason=YOUR EXPLANATION HERE|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Third-party inline|third-party inline]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{User-generated inline}}?',
			tooltip: 'Maybe user-generated',
			template: '{{User-generated inline|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:User-generated inline|user-generated inline]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'Inline maintenance',
			name: '{{User-generated inline}}',
			tooltip: 'Certainly user-generated',
			template: '{{User-generated inline|certain=yes|date={{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:User-generated inline|user-generated inline]]}}',
			forNamespaces: ['0','118']
		},
		{ 
			category: 'External links',
			name: 'EL heading',
			tooltip: '',
			template: '== External links ==\n',
			position: 'cursor',
			editSummary: '',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Authority control',
			tooltip: '{{Authority control}}, should be placed after the external links section and navigation templates, right before the categories.',
			template: '{{Authority control}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Authority control|Authority control]]}}',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Danish Film Database name',
			tooltip: '{{DFDb name|ID}} as an external link',
			template: '* {{DFDb name|ID}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:DFDb name|DFDb name]]}} as an [[WP:EL|external link]] to the [[Danish Film Database]]',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Danish Film Database title',
			tooltip: '{{DFDb title|ID}} as an external link',
			template: '* {{DFDb title|ID}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:DFDb title|DFDb title]]}} as an [[WP:EL|external link]] to the [[Danish Film Database]]',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Danskefilm - FILM entry',
			tooltip: '{{Danskefilm}} as an external link',
			template: '* {{Danskefilm|TYPE=f|NUMBER}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Danskefilm|Danskefilm]]}} as an [[WP:EL|external link]] to a film entry in the database at www.danskefilm.dk',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Danskefilm - PERSON entry',
			tooltip: '{{Danskefilm}} as an external link',
			template: '* {{Danskefilm|TYPE=p|NUMBER}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Danskefilm|Danskefilm]]}} as an [[WP:EL|external link]] to a person\'s entry in the database at www.danskefilm.dk',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'IMDb name',
			tooltip: '{{IMDb name}} as an external link',
			template: '* {{IMDb name|ID|NAME}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:IMDb name|IMDb name]]}} as an [[WP:EL|external link]] to a person\'s entry in the [[IMDb|Internet Movie Database]]',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'IMDb title',
			tooltip: '{{IMDb title}} as an external link',
			template: '* {{IMDb title|ID|TITLE}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:IMDb title|IMDb title]]}} as an [[WP:EL|external link]] to a work\'s entry in the [[IMDb|Internet Movie Database]]',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Lighthouse Digest',
			tooltip: '{{Lighthouse Digest}} as an external link',
			template: '* {{Lighthouse Digest|}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Lighthouse Digest|Lighthouse Digest]]}} as an [[WP:EL|external link]] to the entry in the Lighthouse Explorer Database',
			forNamespaces: '0'
		},
		{ 
			category: 'External links',
			name: 'Official website',
			tooltip: '{{Official website}} as an external link',
			template: '* {{Official website|http://www.example.org/}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Official website|Official website]]}} as an [[WP:EL|external link]]',
			forNamespaces: '0'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'Prod-nn',
			tooltip: 'For tagging articles for proposed deletion with a general rationale where it is believed that the deletion would be uncontroversial',
			template: '{{subst:prod-nn}}\n',
			position: 'before',
			editSummary: 'Nominating article for [[Wikipedia:Proposed deletion|uncontroversial deletion]]',
			forNamespaces: '0'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'Proposed deletion',
			tooltip: 'For tagging articles for proposed deletion with a custom rationale where it is believed that the deletion would be uncontroversial',
			template: '{{subst:proposed deletion|concern=concern}}',
			position: 'before',
			editSummary: 'Nominating article for [[Wikipedia:Proposed deletion|uncontroversial deletion]]',
			forNamespaces: '0'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'Prod blp',
			tooltip: 'For tagging unsourced biographies of living persons',
			template: '{{subst:Prod blp|concern=A search for sources suggests that subject may not yet neither meet the [[WP:GNG|general notability guideline]] nor is likely to be notable for inclusion under any [[Wikipedia:Notability (people)|additional notability criteria for people.}}',
			position: 'before',
			editSummary: 'Nominating unsourced [[Wikipedia:Biographies of living persons|BLP]] for [[Wikipedia:Proposed deletion of biographies of living people|proposed deletion]]',
			forNamespaces: '0'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'Proposed deletion endorsed',
			tooltip: 'For confirming the reasoning of the initial nominator or for giving additional PROD reasons not listed by the initial nominator',
			template: '{{Proposed deletion endorsed}}\n',
			position: 'cursor',
			editSummary: 'Endorsing proposed deletion',
			forNamespaces: '0'
		},
		// ns:1 - Talk namespace
		{ 
			category: 'Banners',
			name: '!DK',
			tooltip: '',
			template: '{{WikiProject Denmark|class=Stub|importance=Low}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Denmark|WikiProject Denmark]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: '!AwardsFilm',
			tooltip: '',
			template: '{{WikiProject Awards |class=List |importance=Low}}\n{{WikiProject Film |class=List |Awards-task-force=Yes}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Awards|WikiProject Awards]]}} and {{[[Template:WikiProject Film|WikiProject Film]]}}',
			forNamespaces: '1, 119'
		},
		{
			category: 'Banners',
			name: 'Annual readership',
			tooltip: 'As the name says',
			template: '{{Annual readership}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Annual readership|Annual readership]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Anthroponymy',
			tooltip: 'WikiProject Anthroponymy banner',
			template: '{{WikiProject Anthroponymy|class=list|importance=low}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Anthroponymy|WikiProject Anthroponymy]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Anthroponymy + China surname',
			tooltip: 'WikiProject Anthroponymy + China banners',
			template: '{{WikiProject Anthroponymy|class=list|importance=low}}\n{{WikiProject China|class=list|importance=low|surname=yes}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Anthroponymy|WikiProject Anthroponymy]]}} and {{[[Template:WikiProject China|WikiProject China]]}}',
			forNamespaces: '1'
		},

		{ 
			category: 'Banners',
			name: 'Anthroponymy + List',
			tooltip: 'WikiProject Anthroponymy + List banners',
			template: '{{WikiProject Anthroponymy|class=list|importance=low}}\n{{WikiProject Lists|class=list|importance=low}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Anthroponymy|WikiProject Anthroponymy]]}} and {{[[Template:WikiProject Lists|WikiProject Lists]]}}',
			forNamespaces: '1'
		},
		{
			category: 'Banners',
			name: 'Auto archiving 90',
			tooltip: 'As the name says',
			template: '{{Annual readership|days=90}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n{{Archives|auto=short|search=yes|index=User:ClueBot III/Master Detailed Indices/{{SUBST:FULLPAGENAME}}|bot=ClueBot III|age=90}}\n{{User:ClueBot III/ArchiveThis|age=2160|archiveprefix={{SUBST:FULLPAGENAME}}/Archive|numberstart=1|maxarchsize=120000|header={{Automatic archive navigator}}|minkeepthreads=8|minarchthreads=1|format= %%i}}\n{{subst:Oca}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n',
			position: 'cursor',
			editSummary: 'Setting up [[User:ClueBot III|ClueBot III]] to [[Help:Archiving a talk page|automatically archive this page]] per [[WP:TALKCOND]], modify as needed + {{[[Template:Oca|Oca]]}} + adding {{[[Template:Annual readership|Annual readership]]}}.',
			forNamespaces: '1'
		},
		{
			category: 'Banners',
			name: 'Auto archiving 180',
			tooltip: 'As the name says',
			template: '{{Annual readership|days=90}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n{{Archives|auto=short|search=yes|index=User:ClueBot III/Master Detailed Indices/{{SUBST:FULLPAGENAME}}|bot=ClueBot III|age=180}}\n{{User:ClueBot III/ArchiveThis|age=4320|archiveprefix={{SUBST:FULLPAGENAME}}/Archive|numberstart=1|maxarchsize=120000|header={{Automatic archive navigator}}|minkeepthreads=8|minarchthreads=1|format= %%i}}\n{{subst:Oca}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n',
			position: 'cursor',
			editSummary: 'Setting up [[User:ClueBot III|ClueBot III]] to [[Help:Archiving a talk page|automatically archive this page]] per [[WP:TALKCOND]], modify as needed + {{[[Template:Oca|Oca]]}} + adding {{[[Template:Annual readership|Annual readership]]}}.',
			forNamespaces: '1'
		},
		{
			category: 'Banners',
			name: 'Auto archiving 365',
			tooltip: 'As the name says',
			template: '{{Annual readership|days=90}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n{{Archives|auto=short|search=yes|index=User:ClueBot III/Master Detailed Indices/{{SUBST:FULLPAGENAME}}|bot=ClueBot III|age=365}}\n{{User:ClueBot III/ArchiveThis|age=8760|archiveprefix={{SUBST:FULLPAGENAME}}/Archive|numberstart=1|maxarchsize=120000|header={{Automatic archive navigator}}|minkeepthreads=8|minarchthreads=1|format= %%i}}\n{{subst:Oca}}\n<!--\n******************************************************************\n* Update the bot settings if you move the page, see WP:POSTMOVE. *\n******************************************************************\n -->\n',
			position: 'cursor',
			editSummary: 'Setting up [[User:ClueBot III|ClueBot III]] to [[Help:Archiving a talk page|automatically archive this page]] per [[WP:TALKCOND]], modify as needed + {{[[Template:Oca|Oca]]}} + adding {{[[Template:Annual readership|Annual readership]]}}.',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Archiving: Oca',
			tooltip: 'Inserts {{subst:Oca}} at cursor position',
			template: '{{subst:Oca}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Oca|Oca]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Archiving: Oca + WP:POSTMOVE notice',
			tooltip: 'Inserts {{subst:Oca}} + hidden notice regarding WP:POSTMOVE',
			template: '{{subst:Oca}}\n<!-- Update the bot settings if you move the page, see WP:POSTMOVE. -->\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Oca|Oca]]}} and hidden notice about updating the bot settings after a page move per [[WP:POSTMOVE]]',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Archiving: WP:POSTMOVE notice',
			tooltip: 'Inserts a hidden notice regarding WP:POSTMOVE',
			template: '<!-- Update the bot settings if you move the page, see WP:POSTMOVE. -->\n',
			position: 'cursor',
			editSummary: 'Inserting hidden notice about updating the bot settings after a page move per [[WP:POSTMOVE]]',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Cleanup AfD',
			tooltip: 'Use {{Cleanup AfD|name}} if other name at AfD such as 2nd nomination',
			template: '{{Cleanup AfD}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Cleanup AfD|cleanup AfD]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Fact and Reference Check',
			tooltip: 'Used on article talk pages when a fact has been verified',
			template: '{{WikiProject Fact and Reference Check improved}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:WikiProject Fact and Reference Check improved|WikiProject Fact and Reference Check improved]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'ITA church stub',
			tooltip: 'Arch+ITA+Cathol stub',
			template: '{{WikiProjectBannerShell|1=\n{{WikiProject Architecture|importance=Low|class=Stub}}\n{{WikiProject Catholicism|importance=Low|class=Stub}}\n{{WikiProject Italy|importance=Low|class=Stub}}\n}}\n',
			position: 'before',
			editSummary: 'Adding banners: {{[[Template:WikiProject Architecture|WikiProject Architecture]]}} + {{[[Template:WikiProject Catholicism|WikiProject Catholicism]]}} + {{[[Template:WikiProject Italy|WikiProject Italy]]}}',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'ITA church start',
			tooltip: 'Arch+ITA+Cathol start',
			template: '{{WikiProjectBannerShell|1=\n{{WikiProject Architecture|importance=Low|class=Start}}\n{{WikiProject Catholicism|importance=Low|class=Start}}\n{{WikiProject Italy|importance=Low|class=Start}}\n}}\n',
			position: 'before',
			editSummary: 'Adding banners: {{[[Template:WikiProject Architecture|WikiProject Architecture]]}} + {{[[Template:WikiProject Catholicism|WikiProject Catholicism]]}} + {{[[Template:WikiProject Italy|WikiProject Italy]]}}',
			forNamespaces: '1'
		},
		{
			category: 'Banners',
			name: 'Old prod full',
			tooltip: 'For article talk pages to document a PROD',
			template: '{{Old prod | nom= | nomdate={{SUBST:ISO date}} | nomreason= | 2nd= | 2nddate={{SUBST:ISO date}} | 2ndreason= | con= | condate={{SUBST:ISO date}} | conreason= }}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Old prod|old prod]]}}',
			forNamespaces: '1'
		},
		{
			category: 'Banners',
			name: 'Unreferenced articles improved',
			tooltip: 'For article talk pages to document references have been added',
			template: '{{Wikipedia Unreferenced articles improved|date={{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Wikipedia Unreferenced articles improved|Wikipedia Unreferenced articles improved]]}} banner per [[WP:URA]]',
			forNamespaces: '1'
		},
		{ 
			category: 'Banners',
			name: 'Rcat',
			tooltip: 'WikiProject Redirect banner',
			template: '{{WikiProject Redirect}}\n{{ombox|text=Note: Any changes made to this template\'s content needs to be checked as workable in the tables on the references which include it directly:\n:* [[Wikipedia:Template messages/Redirect pages]]\n:* [[Wikipedia:Redirect]]}}',
			position: 'before',
			editSummary: 'Adding {{[[Template:WikiProject Redirect|WikiProject Redirect]]}} and ombox with note',
			forNamespaces: '11'
		},
		{
			category: 'RM',
			name: 'RM survey intro',
			tooltip: 'Intro on article talk pages',
			template: '=== Survey ===\n:\'\'Feel free to state your position on the renaming proposal by beginning a new line in this section with\'\' {{subst:codenowiki|* \'\'\'Support\'\'\'}} \'\'or\'\' {{subst:codenowiki|* \'\'\'Oppose\'\'\'}}\'\',then sign your comment with\'\' {{4~}}\'\'. Since [[Wikipedia:Polling is not a substitute for discussion|polling is not a substitute for discussion]], please explain your reasons, taking into account [[Wikipedia:Article titles|Wikipedia\'s policy on article titles]].\'\'',
			position: 'cursor',
			editSummary: 'RM survey intro',
			forNamespaces: '1'
		},
		{
			category: 'RM',
			name: 'Relisting',
			tooltip: 'Used on article talk pages when relisting requested moves discussions',
			template: ' {{subst:relisting}}',
			position: 'cursor',
			editSummary: 'Relisting requested move discussion per [[WP:RM#Relisting]] ',
			forNamespaces: '1'
		},
		{
			category: 'RM',
			name: 'Relisting comment',
			tooltip: 'Used on article talk pages when relisting requested moves discussions',
			template: ':{{Small|{{subst:relisted}} - please add new comments below this notice. ~~~~}}',
			position: 'cursor',
			editSummary: '',
			forNamespaces: '1'
		},
		{
			category: 'RM',
			name: 'Closing',
			tooltip: 'Used on article talk pages when closing requested moves',
			template: '{{subst:RM top|Consensus in the discussion is that ... {{subst:RMnac}}}} {{subst:RM bottom}}',
			position: 'cursor',
			editSummary: 'Closing requested move survey per [[WP:RM/CI]]: page moved/not moved.',
			forNamespaces: '1'
		},
		{
			category: 'Various',
			name: 'Doing',
			tooltip: 'Will insert an indented and signed {{doing}}',
			template: ':{{subst:Doing}} ~~~~',
			position: 'cursor',
			editSummary: 'Doing',
			forNamespaces: ['1','3'] 
		},
		{
			category: 'Various',
			name: 'Reflist-talk',
			tooltip: 'Will insert a {{reflist-talk}}',
			template: '{{Reflist-talk}}\n',
			position: 'cursor',
			editSummary: 'Inserting {{[[Template:Reflist-talk|reflist-talk]]}}',
			forNamespaces: ['1','3','4']
		},
		// ns:3 - User talk
		{
			category: 'My talk',
			name: 'Answered at UTP',
			tooltip: 'Will insert an indented and signed, small {{autp}}',
			template: ':{{Small|{{subst:Autp}} ~~~~}}',
			position: 'cursor',
			editSummary: 'Answered at user\'s talk page',
			forNamespaces: '3'
		},
		{
			category: 'My talk',
			name: 'Responded',
			tooltip: 'Will insert an indented and signed, small {{responded}}',
			template: ':{{Small|{{subst:Responded}} ~~~~}}',
			position: 'cursor',
			editSummary: 'Responded at the appropriate venue',
			forNamespaces: '3'
		},
		{
			category: 'My talk',
			name: 'Retitled',
			tooltip: 'Will insert an indented and signed, small {{thread retitled}}',
			template: ':{{thread retitled|----OLD TITEL!----}}',
			position: 'cursor',
			editSummary: 'Thread retitled',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Welcome + TWA',
			template: '{{subst:User:Sam Sailor/Templates/Welcome}}\n\n== Are you ready for editing? ==\n{{subst:Wikipedia:TWA/Invite|signature=~~~&nbsp;~~~~~}}\n\n',
			position: 'before',
			editSummary: 'Welcome + [[WP:TWA|TWA]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Welcome IP + TWA',
			template: '{{subst:Welcome-t-anon}} ~~~~\n\n== Are you ready for editing? ==\n{{subst:Wikipedia:TWA/Invite|signature=~~~&nbsp;~~~~~}}\n',
			position: 'before',
			editSummary: 'Welcome IP + [[WP:TWA|TWA]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Welcome Copyvio + TWA',
			template: '{{subst:Welcome-copyright}} ~~~~\n\n== Are you ready for editing? ==\n{{subst:Wikipedia:TWA/Invite|signature=~~~&nbsp;~~~~~}}\n',
			position: 'before',
			editSummary: 'Welcome copyvio + [[WP:TWA|TWA]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Welcome joker + TWA',
			template: '{{subst:Sillyh}} ~~~~\n\n== Become a good editor! ==\n{{subst:Wikipedia:TWA/Invite|signature=~~~&nbsp;~~~~~}}\n',
			position: 'before',
			editSummary: 'Welcome + [[WP:TWA|TWA]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Welcome vand + TWA',
			template: '{{subst:Welcome-unconstructive}} ~~~~\n\n== Become a good editor! ==\n{{subst:Wikipedia:TWA/Invite|signature=~~~&nbsp;~~~~~}}\n',
			position: 'before',
			editSummary: 'Welcome + [[WP:TWA|TWA]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Teahouse invitation',
			template: '== A cup of [[Oolong]] is waiting for you ==\n{{subst:Wikipedia:Teahouse/Invitation|sign=~~~~}}\n',
			position: 'after',
			editSummary: '+ [[Wikipedia:Teahouse|Teahouse]] invitation ',
			forNamespaces: '3'
		},
		{
			category: 'New users',
			name: 'Teahouse Welcoming Badge',
			template: '\n== Congrats... You created your Teahouse profile! ==\n{{Wikipedia:Teahouse/Badge/Welcome|size=|signed=~~~~}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:Teahouse|Teahouse]] Welcoming Badge',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'Welcome silly',
			template: '{{subst:Silly}} ~~~&nbsp;~~~~~',
			position: 'before',
			editSummary: 'Welcome, but please do not be [[WP:DE|silly]]!',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Afganistan',
			template: '\n{{subst:WPA-Invitation}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Afghanistan|WikiProject Afghanistan]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Africa',
			template: '\n{{subst:WP Africa Invitation}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Africa|WikiProject Africa]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Albania',
			template: '\n{{subst:Albania-Invite|signed=~~~~}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Albania|WikiProject Albania]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Denmark',
			template: '\n{{subst:WP Denmark invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Denmark|WikiProject Denmark]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Film',
			template: '\n{{subst:WPFILM Invite|~~~&nbsp;~~~~~}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Film|WikiProject Film]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Iceland',
			template: '\n{{subst:WP Iceland invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Iceland|WikiProject Iceland]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP India',
			template: '\n{{subst:WikiProject India invitation|ts=~~~~}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject India|WikiProject India]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Iran',
			template: '\n{{subst:WPIran-invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Iran|WikiProject Iran]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Islam',
			template: '\n{{subst:WPIslam-invite}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Islam|WikiProject Islam]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Italy',
			template: '\n{{subst:WPItaly-invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Italy|WikiProject Italy]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Norway',
			template: '\n{{subst:WP Norway invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Norway|WikiProject Norway]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Pakistan',
			template: '\n{{subst:Wikipedia:WikiProject Pakistan/Outreach/Invitation|~~~~}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Pakistan|WikiProject Pakistan]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Professional wrestling',
			template: '\n{{subst:Wikipedia:WikiProject Professional wrestling/Invite}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Professional wrestling|WikiProject Professional wrestling]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Sweden',
			template: '\n{{subst:WP Sweden invite}}',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Sweden|WikiProject Sweden]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'WP Turkey',
			template: '\n{{subst:WPTR-Invitation}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[Wikipedia:WikiProject Turkey|WikiProject Turkey]] invitation ',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'Helped',
			template: ': {{Helped}}.  If you have any questions, you are always welcome to ask me on [[User talk:Sam Sailor|my talk page]]. Alternatively, you can ask your question at the [[Wikipedia:Teahouse|Teahouse]], or join [[Wikipedia:IRC help disclaimer|Wikipedia\'s Live Help]] [[Wikipedia:IRC|IRC channel]] to get real-time assistance. Happy editing, ~~~&nbsp;~~~~~',
			position: 'cursor',
			editSummary: 'Helped',
			forNamespaces: '3'
		},
		{ 
			category: 'New users',
			name: 'Addendum',
			template: ' If you have any questions, you are always welcome to ask me on [[User talk:Sam Sailor|my talk page]]. Alternatively, you can ask your question at the [[Wikipedia:Teahouse|Teahouse]], or join [[Wikipedia:IRC help disclaimer|Wikipedia\'s Live Help]] [[Wikipedia:IRC|IRC channel]] to get real-time assistance. Happy editing, ~~~&nbsp;~~~~~',
			position: 'cursor',
			editSummary: '',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'AFC submissionremoved',
			template: '\n== Removing AFC submission/declined ==\n{{Subst:User:Sam Sailor/Templates/Un-afcsubmissionremoved|Draft:BUNNYBUNNY}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'User reminded not to remove {{AFC submission/declined}} templates and/or reviewer comments from declined drafts.',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'AFC redirect error',
			template: '\n{{subst:Afc redirect error}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ Error at [[WP:AFC/R]] ',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'AFD incomplete',
			template: '\n== Incomplete AfD ==\n{{subst:Uw-incompleteAFD}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Incomplete AfD submission',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'AFD subst the template',
			template: '\n== Subst AfD ==\n{{subst:Uw-substAFD}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Please use {{subst:Article for deletion}}',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'Autobiography',
			template: '\n== Autobiographies are strongly discouraged ==\n{{subst:uw-autobiography|BUNNYBUNNY}} {{nw}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: '+ [[WP:AB]] notice ',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'Template usage',
			template: '\n== Template usage ==\nThe addition of a maintenance template in  was in error, and the template has been removed. Please make sure to always read the template documentation and [[Wikipedia:Responsible tagging|tag responsibly]]. Best, ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Misplaced maintenance template',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'Uw-filename',
			tooltip: 'Used on user talk pages when user has corrupted a file name',
			template: '\n== File names in articles ==\n{{subst:Uw-filename|BUNNYBUNNY}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: ' + {{[[Template:Uw-filename|Uw-filename]]}} notification regarding file links',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'Uw-hijacking',
			tooltip: 'Used on user talk pages when hijacking has been attempted',
			template: '\n== Article hijacking ==\n{{subst:Uw-hijacking|BUNNYBUNNY}} {{nw}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Warning regarding [[Wikipedia:Article hijack|hijacking]] of article',
			forNamespaces: '3'
		},
		{ 
			category: 'Notices',
			name: 'Uw-uploadfirst',
			tooltip: 'Used on user talk pages when user has added a redlinked file',
			template: '\n== Files need to be uploaded ==\n{{subst:Uw-uploadfirst|BUNNYBUNNY}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: ' + {{[[Template:Uw-uploadfirst|Uw-uploadfirst]]}} notification regarding red file links',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'Proposed deletion notify',
			tooltip: 'Used on user talk pages to warn contributors to affected articles that the article has been proposed for deletion pursuant to WP:PROD',
			template: '{{subst:Proposed deletion notify|Wikipedia}} ~~~~',
			position: 'after',
			editSummary: 'Notification of [[Wikipedia:Proposed deletion|proposed uncontroversial deletion]] of article',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			enabled: 'false',
			name: 'ProdwarningBLP',
			tooltip: 'Used on user talk pages to warn contributors to affected articles that the article has been proposed for deletion pursuant to WP:PRODBLP',
			template: '{{subst:ProdwarningBLP|Article}} ~~~~',
			position: 'after',
			editSummary: 'Notification of [[Wikipedia:Proposed deletion of biographies of living people|proposed deletion]] of unsourced [[Wikipedia:Biographies of living persons|BLP]]',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Deprod',
			tooltip: 'Used on user talk pages for notifying a PROD nominator that you have removed their PROD tag',
			template: '{{subst:Deprod|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Notification of [[WP:DEPROD]]ing',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Deprod-reprod',
			tooltip: 'Used on user talk pages for notifying a PROD nominator that you have removed their PROD tag because the article has previously been de-prodded or listed at WP:AFD',
			template: '{{subst:Deprod-reprod|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Notification of [[WP:DEPROD]]ing, article has previously been de-prodded or listed at [[Wikipedia:Articles for deletion]]',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Prod contested',
			tooltip: 'Used on user talk pages for notifying a PROD nominator that a PROD\'ed article has been restored',
			template: '{{subst:Prod contested|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Notification of restoration of previously PRODed article',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Prod hint',
			tooltip: 'Used on user talk pages for letting a user know about the PROD parameters',
			template: '{{subst:Prod hint|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Note in re use of PROD parameters',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Prod-summary',
			tooltip: 'Used on user talk pages to remind a user in a friendly way that they should use edit summaries when proposing deletion for an article.',
			template: '{{subst:Prod-summary|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Note in re use of edit summary when PRODing',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Prod-speedy',
			tooltip: 'Used on user talk pages for notifying a user that you have tagged an article they PRODed for speedy deletion',
			template: '{{subst:Prod-speedy|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Notification of speedy deletion tagging of PRODed article',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Please prod',
			tooltip: 'Used on user talk pages for letting a user know that PROD is often an alternative to AfD',
			template: '{{subst:Please prod|BUNNYBUNNY}} ~~~~',
			position: 'after',
			editSummary: 'Prod is sometimes an alternative to AfD',
			forNamespaces: '3'
		},
		{
			category: 'PROD',
			name: 'Uw-badprodblp',
			tooltip: '',
			template: '\n== Incorrect prod blp ==\n{{subst:Uw-badprodblp|BUNNYBUNNY}} ~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Incorrect {{[[Template:Prod blp|prod blp]]}}',
			forNamespaces: '3'
		},
		{
			category: 'WikiLove',
			name: 'Happy New Year',
			enabled: 'false',
			tooltip: 'Used on user talk pages to wish a happy new year',
			template: '{{subst:User:Sam Sailor/Templates/HappyNewYear}}',
			position: 'after',
			editSummary: 'Happy New Year',
			forNamespaces: '3'
		},
		// ns:4 - Wikipedia
		{ 
			category: 'AfD',
			name: 'Afdnewuser tag',
			tooltip: 'Users commenting has no contributions other than in the discussion and the article(s) being considered for deletion',
			template: ' {{subst:afdnewuser|USERNAME-WITHOUT-USER-PREFIX|sig=}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Afdnewuser|afdnewuser]]}} tag(s)',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Alternative search term',
			tooltip: 'Add boilerplate {{Find sources}}',
			template: ':{{strong|Alternative search term(s)}}:\n:({{Find sources|BUNNYBUNNY}})',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Find sources|find sources]]}} with alternative search term(s)',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Canvassed',
			tooltip: 'When there is solid evidence that an editor has been canvassed',
			template: ' {{subst:canvassed|1=Username|2=(optional)link to diff (resembling http://en.wikipedia.org/w/index.php?diff=prev&oldid=12345)}} {{Small|~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Canvassed|canvassed]]}} tag(s)',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Closing',
			tooltip: 'Placed at the top of a deletion discussion sub-page or section when you are actively working on the close',
			template: '{{Closing}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Closing|closing]]}} tag',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'COI editor',
			tooltip: 'When a COI has been declared or can be assumed without any reasonable doubt',
			template: ' {{subst:COI editor|USERNAME-WITHOUT-USER-PREFIX}} {{Small|~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:COI editor|COI editor]]}} tag(s)',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Csp (confirmed sock)',
			tooltip: 'When editor is a confimed sock puppet',
			template: '<s></s> {{subst:csp|Username of Sock puppet|Username of Sock master}} – {{Small|Struck above comment from confirmed sock per [[WP:SOCKSTRIKE]]. ~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Csp|csp]]}} tag and striking comment by confirmed sock per [[WP:SOCKSTRIKE]]',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Csp - blocked',
			tooltip: 'When editor is a blocked sock puppet',
			template: '<s></s> {{subst:csp|Username of Sock puppet|Username of Sock master}} – {{Small|Struck above comment from blocked sock per [[WP:SOCKSTRIKE]]. ~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Csp|csp]]}} tag and striking comment by blocked sock per [[WP:SOCKSTRIKE]]',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Deletion mention',
			tooltip: 'When an AFD has been mentioned elsewhere',
			template: ' {{subst:Deletion mention|PAGE WHERE AFD WAS MENTIONED|~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Deletion mention|deletion mention]]}} tag',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Duplicate vote',
			tooltip: 'When editor !votes more than once',
			template: ' {{subst:duplicate vote|USERNAME-WITHOUT-USER-PREFIX}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Duplicate vote|duplicate vote]]}} tag',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Not a ballot',
			tooltip: '',
			template: '{{Not a ballot}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Not a ballot|not a ballot]]}}',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Oldafdlist',
			tooltip: 'Add immediately below the sort template (i.e. the {{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD}})',
			template: '{{subst:Oldafdlist|ARTICLE NAME}}\n',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Oldafdlist|oldafdlist]]}}',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Page creator',
			tooltip: 'To notify closer that editor is the page creator',
			template: ' {{subst:page creator|USERNAME-WITHOUT-USER-PREFIX|type=AfD}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Page creator|page creator]]}} tag',
			forNamespaces: '4'
		},
		{ 
			category: 'AfD',
			name: 'Rescue list',
			tooltip: 'To notify participants in a deletion discussion that the discussion has been added to the list of content for rescue consideration maintained by Article Rescue Squadron.',
			template: '{{subst:Rescue list|~~~~}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Rescue list|Rescue list]]}} note',
			forNamespaces: '4'
		},	
		{ 
			category: 'AfD',
			name: 'SPA tag',
			tooltip: 'Users commenting has few contributions other than in the discussion and the article(s) being considered for deletion',
			template: ' {{subst:spa|USERNAME-WITHOUT-USER-PREFIX}}',
			position: 'cursor',
			editSummary: 'Adding {{[[Template:Spa|Spa]]}} tag(s)',
			forNamespaces: '4'
		},	
		{ 
			category: 'RM/TR',
			name: 'Is doing',
			tooltip: 'When doing a RM/TR',
			template: '** {{Isdoing|Sam Sailor}} ~~~~~',
			position: 'cursor',
			editSummary: '{{[[Template:Isdoing|Isdoing]]}}',
			forNamespaces: '4'
		},
		// ns:5 - Wikipedia talk
		{ 
			category: 'AfC',
			name: 'Comment on draft',
			template: '== Comment on draft ==\nYour comments on [[Draft:BUNNYBUNNY]] are welcomed. Please use either [[Wikipedia:WikiProject Articles for creation/Helper script|Yet Another Articles for Creation Helper Script]] by enabling {{myprefs|9|Editing|check=Yet Another AFC Helper Script}}, or use <code>{{[[Template:Afc comment|Afc comment]]|Your comment here. {{4~}}}}</code> directly in the draft. Thank you. --~~~&nbsp;~~~~~',
			position: 'after',
			editSummary: 'Request for comments on draft',
			forNamespaces: '5'
		},
		{
			category: 'RM',
			name: 'RM notification',
			tooltip: 'Notification on project talk pages about relisted requested moves discussions',
			template: '\n== RM notification {{subst:CURRENTDAY}} {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}} ==\n{{subst:RM notification|1=Talk:DESIRED PAGE#DESIRED SECTION|sig=sig}}',
			position: 'after',
			editSummary: 'Posting {{[[Template:RM notification|RM notification]]}} per [[WP:RM#Relisting]] in re requested move discussion',
			forNamespaces: '5'
		},
		// ns:118 - Draft
		{ 
			category: 'Articles',
			name: '!AFC submission',
			tooltip: '',
			template: '{{AFC submission|t||ts={{SUBST:CURRENTTIMESTAMP}}|u=USERNAME|ns=118|demo=}}\n',
			position: 'before',
			editSummary: '{{AFC submission|t||ts={{SUBST:CURRENTTIMESTAMP}}|u=USERNAME|ns=118|demo=}}',
			forNamespaces: '118'
		},
		{ 
			category: 'Draft',
			name: 'Promising draft',
			template: '{{Promising draft}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:Promising draft|promising draft]]}}',
			forNamespaces: '118' 
		},
		{ 
			category: 'Draft',
			name: 'UFW',
			template: '{{UFW}}\n',
			position: 'before',
			editSummary: 'Adding {{[[Template:UFW|UFW]]}}',
			forNamespaces: '118' 
		},
	]);
});
// </nowiki>

/**
 * Global Twinkle
 * [[User:Snowolf/How to globally Twinkle]]
 * [[User:PiRSquared17/twinkle]]
 */
//Morebits, a library for Twinkle-like gadgets by AzaToth
//mw.loader.load('//en.wikipedia.org/w/index.php?title=User:AzaToth/morebits.js&action=raw&ctype=text/javascript');
//Fork of Twinkle intended to work on as many wikis as possible
//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:PiRSquared17/twinkle.js&action=raw&ctype=text/javascript');
//Note 2016-04-09: Running the two above scripts only gives me very limited Twinkle usability. Drop down menu is missing in both Vector and Monobbok.
//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:PiRSquared17/beta.js&action=raw&ctype=text/javascript');
//Note 2016-04-09: Do with above script solo and Twinkle deactivated in prefs on ENWIKI. Drop down menu is back in Vector (in Monobbok as tabs), but are limited to "Last" and "Unlink", and that's on ENWIKI. Disabling again.
//Note #2 2016-04-09: Above script solo and Twinkle activated in prefs on ENWIKI, would appear to retain the full functionality on ENWIKI without conflicts so far, and some limited functionality on other Wikipedias.
//One more to try:
//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:PiRSquared17/twinkle-beta.js&action=raw&ctype=text/javascript');
//Note #3 2016-04-09: Above script twinkle-beta.js gives LESS functionality than beta.js 
//Note 2016-04-10 Disabling beta.js again, it screws things up on ENWIKI. If anyone knows how to make this work, leave me a message.
//20210528
//User:Xiplus/Twinkle
//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Xiplus/TwinkleGlobal.js&action=raw&ctype=text/javascript');
//Disabling agin. Works with limited functionality. Maybe worthwhile for a global rollbacker/admin.

/* ----------------------- SCRIPTS FROM META ------------------- */

/**
 * active_sysops.js
 * Shows the number of active (one log entry in the last 7 days, or as configured) sysops, uses data from the toolserver
 * Linkback: [[User:Hoo man/active sysops.js]] <http://meta.wikimedia.org/wiki/User:Hoo_man/Scripts/Active_sysops>
 * Notes: 2015-12-29: Uninstalling. How often will I need this? Very rarely on small wikis, maybe.
 */

/**
 * Countervandalism.js
 * Collection of different scripts, gadgets and adjustments. Import, copy, or cherry-pick as you like
 * Linkback: [[User:Krinkle/Scripts/Countervandalism.js]]
 * Loads:
 * [[User:Krinkle/RTRC.js]]
 * [[User:Krinkle/Tools/WhatLeavesHere.js]]
 * [[User:Krinkle/Scripts/CVNSimpleOverlay_wiki.js]] - loaded individually, see below
 * Notes: 2015-12-29: Apparently does not work, disabling
 */

/**
 * CVNSimpleOverlay_wiki.js
 * This script generates the little whitelist/blacklist msg in the upper-right part of a user page.
 * Linkback: [[File:Krinkle_CVNSimpleOverlay_wiki.js]]
 * Documentation: [[User:Krinkle/Scripts/CVNSimpleOverlay]]
 * Notes:
 * 2018-11: Stopped working. Reported in [[Special:Permalink/18648562#[BUG]: CVNSimpleOverlay]].
 */
 //mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Krinkle/Scripts/CVNSimpleOverlay_wiki.js&action=raw&ctype=text/javascript');

/**
 * forceltr.js
 * Forces left-to-right layout and editing on RTL wikis.
 * @see https://meta.wikimedia.org/wiki/Force_ltr
 * @update-token [[File:pathoschild/forceltr.js]]
 * OBS!: Is loaded by Countervandalism.js - but that did not seem to work
 * 2016-04-19: Uninstalling for now. Is being loaded by User:Mike.lifeguard/remote.js
 */

/**
 * Reflinks.js
 * [[:en:WP:REFILL]] - Expands bare references semi-automatically
 * Linkback: [[:m:User:Zhaofeng_Li/Reflinks.js]]
 * Notes: 
 */
 if ( mw.config.get( 'wgNamespaceNumber' ) === 0 || mw.config.get( 'wgNamespaceNumber' ) === 118 ) {
 	mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript');
 	}

/**
 * remote.js
 * Linkback: [[User:Mike.lifeguard/remote.js]]
 * Documentation: [[User talk:Mike.lifeguard/removeSpam.js]]
 * Notes: Loads [[User:Mike.lifeguard/removeSpam.js]] and several other scripts, e.g. File:pathoschild/forceltr.js
 * 2016-04-19: Disabling. I think it conflicts with something else, but I'll have to test it again.
 */
 //mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Mike.lifeguard/remote.js&action=raw&ctype=text/javascript');

/**
 * simpleRevert.js
 * Adds 'revert' and 'revert-to' links on contributions pages, page history, and diff screens
 * Linkback: [[:m:User:Animum/simpleRevert.js]]
 * Notes: 
 */
 //mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Animum/simpleRevert.js&action=raw&ctype=text/javascript');

/**
 * smart_rollback.js
 * Provides several useful functions for rollback (custom edit summary, mark as bot edits and mass revert)
 * Linkback: [[:m:User:Hoo man/smart_rollback.js]]
 * Documentation: [[:m:User:Hoo man/Scripts/Smart rollback]]
 * Notes: 
 */
 //mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Hoo_man/smart_rollback.js&action=raw&ctype=text/javascript');

/**
 * tagger.js
 * This tool can tag pages with a few clicks (which is much faster than editing the whole page per Hand).
 * Linkback: [[User:Hoo man/tagger.js]]
 * Documentation: [[User:Hoo man/Scripts/Tagger]]
 * Notes: 2017-01-30: Not used for a long time.
 */

/**
 * useful_links.js
 * Gives some useful links on user, user talk and user contribution pages
 * Linkback: [[:m:User:Hoo man/useful links.js]]
 * Documentation: [[:m:User:Hoo man/Scripts/Useful links]]
 * Notes: 2017-01-09: Uninstalled. No need for this when loading MoreMenu.js.
 */

/**
 * utnawh
 * Linkback: [[User:Sam Sailor/utnawh.js]]
 */
mw.loader.load('https://meta.wikimedia.org/w/index.php?title=User:Sam_Sailor/utnawh.js&action=raw&ctype=text/javascript');

/**
 * WikiEditorEmoticons.js
 * A script example with this huge smilie button list
 * Linkback: [[:m:User:Perhelion/WikiEditorEmoticons.js]]
 * Notes: Cute idea, but is seldom very useful.
 */

/* ----------------------- SCRIPTS FROM ENGLISH WIKIPEDIA ------------------- */
//function enWikiScript(page) {
//	mw.loader.load( '//en.wikipedia.org/w/index.php?title='
//	+ page + '&action=raw&ctype=text/javascript');
//	}

/**
 * adminhighlighter.js
 * A jQuery/mediawiki-heavy rewrite of [[:en:User:Amalthea/userhighlighter.js]] that was based on [[:en:User:Ais523/adminrights.js]]
 * Linkback: [[:en:User:Theopolisme/Scripts/adminhighlighter.js]]
 * Documentation: [[:en:User:Theopolisme/Scripts/adminhighlighter]]
 * Notes: 2015-12-29: Disabling here, does not work on other wikis than enwiki. Loaded in my common.js.
 */

/**
 * ajaxPreview.js
 * Adds preview and changes Ajax buttons which are faster than standard buttons, use less traffic, retain the text cursor position and undo (Ctrl-Z) history.
 * Linkback: [[:en:User:Js/ajaxPreview.js]]
 * Documentation: [[:en:User:Js/ajaxPreview]]
 * Notes: Preview is much faster with this.
 */
 if ((mw.config.get('wgAction') === 'edit') || (mw.config.get('wgAction') === 'submit')) {
 	/* Edit and Submit */
 	mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Js/ajaxPreview.js');
    // Code to execute after each preview update
    window.ajaxPreviewExec = function(previewArea) {
    	// Enable popups
    	if (window.setupTooltips) {
    		setupTooltips(previewArea);
    		previewArea.ranSetupTooltipsAlready = false;
    	}
    	// Sortable tables/collapsible elements
    	mw.loader.using( [
    		'jquery.tablesorter',
    		'jquery.makeCollapsible'
    	], function(){
    		$( 'table.sortable' ).tablesorter();
    		$( '#wikiPreview .collapsible' ).makeCollapsible();
    		} );
    	};
    }
    
/**
 * autocompleter
 * Context-sensitive, tab-based autocompletion tool for editing MediaWiki
 * Documentation: [[:en:User:Theopolisme/Scripts/autocompleter]]
 * Notes:
 * A time saver when you get used to it.
 * One of many scripts that does not work if [[User:Cacycle/wikEd]] is installed.
 * Not to be confused with [[Meta:Gadgets/autocomplete]] or its local loader [[:en:User:ערן/autocomplete.js]]
 * 2018-12-17: loaded here instead of in my common.js on ENWIKI, seems to work globally
 */
 mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3ATheopolisme%2FScripts%2Fautocompleter.js&action=raw&ctype=text/javascript'); // [[:en:User:Theopolisme/Scripts/autocompleter.js]]

/**
 * Cat links
 * 
 * Documentation: [[:en:User:DannyS712/Cat links]]
 * Notes: 2019-04-23
 */
 mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3ADannyS712%2FCat+links.js&action=raw&ctype=text/javascript'); // [[:en:User:DannyS712/Cat links.js]]

/**
 * commonHistory.js
 * On the watchlist, adds a link to a user's contribs next to the link to their user or user talk page
 * Linkback: [[:en:User:Writ Keeper/Scripts/commonHistory.js]]
 * Notes: According to [[:en:User:Writ Keeper/Scripts/inlineDiffDocs]] the commonHistory.js script is a consolidated version of 
 * [[:en:User:Writ Keeper/Scripts/watchlistDiffs.js]]
 * [[:en:User:Writ Keeper/Scripts/generalHistory.js]]
 * [[:en:User:Writ Keeper/Scripts/contribsHistory.js]]
 * but NOT [[:en:User:Writ Keeper/Scripts/userHistory.js]].
 * These scripts, providing the in-place diff functionality of all these scripts, with the exception of the original UserHistory script.
 * In short: commonHistory.js supersedes the above three scripts, adding the in-place diff functionality to history, contribs, watchlist, 
 * and recent changes pages. It's recommended to use this script instead of the others, as it's significantly easier to maintain.
 * Note: Loaded locally on enwiki in my Vector skin script file.
 */

/**
 * confirmationRollback.js
 * No more accidental rollbacks
 * Linkback: [[:en:User:MusikAnimal/confirmationRollback.js]]
 * Notes: 
 * 2016-04-22: I need to test these rollback scripts; I'm not sure confirmationRollback.js does its job currently with what else rollback and revert scripts are installed.
 */
 //enWikiScript('User:MusikAnimal/confirmationRollback.js');

/**
 * copySectionLink.js
 * A mod of en:User:Bility/copySectionLink.js fixed to work on any Wiki and to handle titles with question marks correctly
 * Script adds a hidden pilcrow (¶) after editable section titles
 * Linkback: [[:en:User:SoledadKabocha/copySectionLink.js]]
 * Documentation: ([[:en:User:Bility/copySectionLink]])
 * Notes: 
 * 2016-06-23: Added here.
 * 2018-11-25: Removing. [[:en:User:Fred Gandt/sectionLinks.js]] (loaded here) does the same and more.
 */

/**
 * googleTitle.js
 * Adds a link next to an article's title that will open a new tab with a Google search for that title (with -wikipedia.org, suppressing results from Wikipedia itself, and without any tags, like (disambiguation)).
 * Linkback: [[:en:User:Writ Keeper/Scripts/googleTitle.js]]
 * Notes: Very useful, and runs fine on other projects.
 * 2019-04-07: Disabled, not really needed when [[:en:User:Enterprisey/quick-before.js]] is loaded.
 */
// mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Writ Keeper/Scripts/googleTitle.js');

/**
 * hidetopcontrib.js
 * This script hides lines according to who has the top contribution for a page.
 * Linkback: [[:en:User:Markhurd/hidetopcontrib.js]]
 * Documentation: [[:en:User talk:Markhurd/hidetopcontrib.js]]
 * Notes: 2017-02-18
 */

/**
 * histcomb.js
 * Consequent edits by the same user are folded together etc
 * Linkback: [[:en:User:Alex Smotrov/histcomb.js]]
 * Documentation: [[:en:User talk:Alex Smotrov/histcomb.js]]
 * Notes: 2017-02-18
 * 2018-11-25: Loaded locally on en.wiki in my Vector.js skin script file.
 */

/**
 * IllWill
 * Search for interwikilinks via Wikidata
 * Documentation: [[:en:User:Cobaltcigs/IllWill]]
 * Notes: 2020-12-19 added
 */
 //mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3ACobaltcigs%2FIllWill.js&action=raw&ctype=text/javascript'); // [[:en:User:Cobaltcigs/IllWill.js]]

/**
 * LastEditor
 * Displays data about a page's last editor
 * Twin user script: PageCreator
 * Documentation: [[:en:User:Eizen/LastEditor]]
 * Notes: 2018-01-13; 2018-11-13 works fine globally
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User%3AEizen%2FLastEditor.js'); // [[:en:User:Eizen/LastEditor.js]]
 window.LastEditorOptions = {
 	namespaces: [0, 1, 2, 3, 4, 5, 10, 14, 118]    // Custom namespace selection
 	};

/**
 * lintHint
 * Show LintErrors analysis (Parsoid messages) live.
 * Linkback: [[w:User:PerfektesChaos/js/lintHint/r.js]]
 * Documentation: [[w:User:PerfektesChaos/js/lintHint]]
 * Notes: 2018-09-13
 */
 mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/lintHint/r.js&action=raw&bcache=1&maxage=86400&ctype=text/javascript");

/**
 * MoreMenu.js
 * A script that adds page (and, if applicable, user) drop-down menus to the toolbar
 * Documentation: [[meta:MoreMenu]]
 */
mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');

/**
 * Navigation popups
 * Linkback: 
 * Documentation: [[:en:Wikipedia:Tools/Navigation popups]]
 * Notes: Make sure that Navigation Popups is DESELECTED in prefs both here on Meta and on individual projects.
 */
 mw.loader.load('https://en.wikipedia.org/w/load.php?modules=ext.gadget.Navigation_popups');
 mw.loader.load('https://en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-navpop.css&action=raw&ctype=text/css', 'text/css');
 window.popupStructure = 'menus';
 window.popupNewWindows = true;
 window.popupRevertSummaryPrompt = true;
 window.popupFixDabs = true;
 window.popupDabsAutoClick = 'wpPreview';
 window.popupFixRedirs = true;
 window.popupRedirAutoClick = 'wpDiff';
 window.popupRedlinkRemoval = true;
 window.popupRedlinkAutoClick = 'wpDiff';
 
/**
 * PageCreator
 * Displays data about a page's creator and first revision
 * Twin user script: LastEditor
 * Documentation: [[:en:User:Eizen/PageCreator]]
 * Notes: 2018-01-13; 2018-11-13 works fine globally
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User%3AEizen%2FPageCreator.js'); // [[:en:User:Eizen/PageCreator.js]]
 window.PageCreatorOptions = {
    namespaces: [0, 1, 2, 3, 4, 5, 10, 14, 118], // Custom namespace selection
    useUTC: true // Displays the timestamp in local time
    };
    
/**
 * pageLinkHelper
 * Several little helpers for links related to pages
 * Linkback: [[:en:User:PerfektesChaos/js/pageLinkHelper/r.js]]
 * Documentation: [[:en:User:PerfektesChaos/js/pageLinkHelper]]
 * Notes: 2018-01-27: loaded here
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User%3APerfektesChaos%2Fjs%2FpageLinkHelper%2Fr.js');

/**
 * permalink.js
 * Adds a link next to page headers which copies a permalink to that section using [[Special:Permalink]].
 * Linkback: [[:en:User:The Earwig/permalink.js]]
 * Notes: 2016-06-29: Added, will it work on other Wikipedias? It does.
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:The_Earwig/permalink.js');

/**
 * quick-before.js
 * BEFORE links on arbitrary pages.
 * Linkback: [[:en:User:Enterprisey/quick-before.js]]
 * Documentation: [[:en:User:Enterprisey/quick-before]]
 * Notes: 
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Enterprisey/quick-before.js');

/**
 * Redirectify
 * create and edit redirects
 * Documentation: [[en:User:DannyS712/Redirectify]]
 * Notes: 2019-04-02. 2019-04-13: moved from common.js. 20210111: loading in common.js again
 */
// mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3ADannyS712%2FRedirectify.js&action=raw&ctype=text/javascript'); // [[en:User:DannyS712/Redirectify.js]]
 
/**
 * reply-link.js
 * Add a "reply" link after signatures on a discussion page.
 * Linkback: [[:en:User:Enterprisey/reply-link.js]]
 * Documentation: [[:en:User:Enterprisey/reply-link]]
 * Notes: 2018-08: Loaded locally on en.wiki in my common.js
 */

/**
 * sectionLinks.js
 * Scroll wheel access on cursor hover to links to all section headings
 * Linkback: [[:en:User:Fred Gandt/sectionLinks.js]]
 * Documentation: none
 * Notes: Installed 2018-11-23
 * 2018-11-25: Clever script. 
 */
 mw.loader.load('//en.wikipedia.org/w/index.php?title=User%3AFred+Gandt%2FsectionLinks.js&action=raw&ctype=text/javascript');

/**
 * statusCheck.js
 * Displays whether a user is on- or offline when viewing their user page, user talk page and contributions
 * Linkback: [[:en:User:Ale_jrb/Scripts/statusCheck.js]]
 * Notes: 2015-12-29: Uninstalling here, does not work on other wikis than enwiki. Loaded in my Vector skin file.
 */

/**
 * TextDiff
 * Shows a simpler, text-only diff.
 * Linkback: [[:en:User:Evad37/TextDiff.js]]
 * Documentation: [[:en:User:Evad37/TextDiff]]
 * Notes: Installed 2018-01-09
 */
 //enWikiScript('User:Evad37/TextDiff.js');

/**
 * unwatch.js
 * Adds "unw" (unwatch) links to the watchlist
 * Linkback: [[:en:User:Anomie/unwatch.js]]
 * Notes: Another great little script from Anomie, but does not work with m:Help:Enhanced recent changes
 * 2018-07-05: Is in any case not needed with the recent new watchlist features on enwiki.
 */

/**
 * urldecoder.js
 * For easy conversion of bare Wikimedia URLs to wikicode. Icon in edit toolbar: chain link with green arrow.
 * Linkback: [[:en:User:Js/urldecoder.js]]
 * Documentation: [[:en:User:Js/urldecoder]]
 * Notes: 
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Js/urldecoder.js');

/**
 * useridentifier.js
 * Adds an icon to user pages to display some basic information about the user
 * Linkback: [[:en:User:Anomie/useridentifier.js]]
 * Notes: Adds icons to the left of the user name on user and user talk page
 * 2015-12-29: Loaded here instead of locally on en.wiki, it works fine on other wikis.
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Anomie/useridentifier.js');

/**
 * userinfo.js
 * Adds an information line below a user's name on their user and talk pages that shows edit count, age of account, permissions, and last edit time
 * Linkback: [[:en:User:PleaseStand/userinfo.js]]
 * Documentation: [[:en:User:PleaseStand/User info]]
 * Notes: Works well cross-wiki
 * Linkback: [[:en:User:Amorymeltzer/userinfo.js]], a mod of the above
 * Updated to: Show info on all user subpages and related pages like logs and contributions, as well as indicate user-selected gender
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Amorymeltzer/userinfo.js');

/**
 * votesymbols.js
 * Icons to !votes in AfDs, RfAs, etc. Doesn't affect the page, just shows the icons when this code is installed.
 * Linkback: [[:en:User:Ais523/votesymbols.js]]
 * Linkback: [[:en:User:Pythoncoder/voteSymbols.js]], a mod of the above
 * Notes: 2018-05-10
 */
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Pythoncoder/voteSymbols.js');

/* ----------------------- SCRIPTS FROM OTHER WIKIMEDIA WIKIS ------------------- */
mw.loader.load('//test.wikipedia.org/w/index.php?title=User:Sam_Sailor/test.js&action=raw&ctype=text/javascript');

/**
 * autocomplete
 * A context aware autocomplete that suggest links when user typing [[, and template when user type {{
 * Linkback: [[Gadgets/autocomplete]]
 * Notes: Brilliant
 */
 mw.loader.load('//he.wikipedia.org/w/load.php?modules=ext.gadget.autocomplete');

/**
 * autoFormatter.js
 * Linkback: [[:de:Benutzer:TMg/autoFormatter.js]]
 * Documentation: [[User:TMg/autoFormatter]]
 * Notes: 
 */
 mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter.js&action=raw&ctype=text/javascript');

/**
 * checksitelinks.js
 * When _editing_ a Wikipedia article, the script adds an action link (near search box) to remove the sitelinks which are already available on Wikidata.
 * Linkback: [[:d:User:Yair rand/checksitelinks.js]]
 * Documentation:
 * Notes: Uninstalled 2017-01-30, it's very rare you find oldstyle sitelinks these days.
 */

/**
 * cleanDiff.js
 * Linkback: [[:de:Benutzer:TMg/cleanDiff.js]], 
 * Documentation: [[:de:Benutzer:TMg/cleanDiff]]
 * Notes: 
 */
 mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:TMg/cleanDiff.js&action=raw&ctype=text/javascript');

/**
 * Gadget-markblocked.js
 * Will mark all linked blocked users with a strikethrough, and mark all linked indefinitely blocked users with italics and a strikethrough
 * Linkback: [[:ru:MediaWiki:Gadget-markblocked.js]]
 * Notes: 2015-12-28: [[:en:User:NuclearWarfare/Mark-blocked script.js]] was previously used as a loader in common.js on en.wiki
 * 2018-05-25: disabling this, loading as a gadget on enwiki only from Preferences | Gadgets | Appearance | Strike out usernames that have been blocked
 */
 //mw.loader.load('//ru.wikipedia.org/w/index.php?title=MediaWiki:Gadget-markblocked.js&action=raw&ctype=text/javascript');

/**
 * hit count.js
 * This tool shows a link to the "Wikipedia article traffic statistics" (stats.grok.se) on every article, by [[:m:User:Hoo man]]
 * Linkback: [[:de:Benutzer:Hoo man/hit count.js]]
 * Notes: MoreMenu.js has something similar
 */

/**
 * Linkscount.js
 * Quick count of transclusions and links
 * Linkback: [[:d:MediaWiki:Linkscount.js]]
 * Notes: Installed 2018-11-25
 */
 if (mw.config.get('wgCanonicalSpecialPageName') === 'Whatlinkshere') {
 	mw.loader.load('//www.wikidata.org/w/index.php?title=MediaWiki:Linkscount.js&action=raw&ctype=text/javascript'); 
 	}

/**
 * Subcategories
 * When looking at a category, click "Sub categories" to expand each of the sub categories visible. If you want to expand the next layer, just click it again (to close them up) and click it a third time (to open the next layer). Repeat as many times as desired.
 * Linkback: [[User:DannyS712/Subcategories.js]]
 * Documentation: [[:en:User:DannyS712/Subcategories]]
 * Notes: 2019-06-30
 */
 mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:DannyS712/Subcategories.js&action=raw&ctype=text/javascript');

/**
 * XTools
 * Suite of statistics tools for MediaWiki wikis, users, pages, and more
 * Linkback: [[mw:XTools/ArticleInfo.js]]
 * Documentation: [[mw:XTools]]
 * Notes:
 * Installed 2018-09-13.
 * 2018-11-25: Testing en:User:Amorymeltzer/articleinfo-gadget.js
 */
 //mw.loader.load('//www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript');
 mw.loader.load('https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Amorymeltzer/articleinfo-gadget.js');

/**
 * 
 * 
 * Linkback: [[]]
 * Documentation: [[]]
 * Notes: 
 */
 //mw.loader.load('');