User:Trappist the monk/common.js

/**

* TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.

* @see https://meta.wikimedia.org/wiki/TemplateScript

*/

//

mw.config.set('userjs-templatescript', { regexEditor: false }); // disable the regex editor

if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {

$.ajax(

'//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js',

{dataType: 'script', cache: true}

).done(function () {

var add = function() {

return mw.util.addPortletLink.apply(mw.util, arguments);

};

pathoschild.TemplateScript.add(

{

name:'hyphenate',

script: function(editor)

{

editor

.replace(/(\| *)accessdate/g, '$1access-date')

.replace(/(\| *)archivedate/gi, '$1archive-date')

.replace(/(\| *)archiveurl/gi, '$1archive-url')

.replace(/(\| *)airdate/gi, '$1air-date')

.replace(/(\| *)authorlink/gi, '$1author-link') // also fixes same with trailing enumerator

.replace(/(\| *)author(\d+)link/gi, '$1author$2-link')

.replace(/(\| *)orig\-?year/gi, '$1orig-date')

.replace(/\| *access\-date\s*=\s*([\|\}])/g, '$1') // delete empties

.replace(/\| *archive\-date\s*=\s*([\|\}])/g, '$1')

.replace(/\| *archive\-url\s*=\s*([\|\}])/g, '$1')

.replace(/\| *url\-status\s*=\s*([\|\}])/g, '$1')

.replace(/\| *author\d*\-link\d*\s*=\s*([\|\}])/g, '$1') // plain & both enumerated forms

.replace(/\| *orig\-date\s*=\s*([\|\}])/g, '$1');

}

});

pathoschild.TemplateScript.add(

{

name:'cleanup',

script: function(editor)

{

editor

.replace(/< *[Bb][Rr] *>/g, '
')

.replace(/

.replace(/<\/R[Ee][Ff]\b/g, '

.replace (/Hawai[‘’']i/g, "Hawaiʻi") // replace various appostrophes with okina (U+02BB)

.replace (/[„“”]/g, '"')

.replace (/[‘’]/g, "'")

.replace (/([\.;,!\?\>\]\}]) +(

.replace (/(\|\s*title[^\|\}]*) : /g, "$1: ") // extraneous space before colon introducing subtitle

.replace (/(\|\s*trans\-title[^\|\}]*) : /g, "$1: ") // extraneous space before colon introducing subtitle

.replace (/\|\s*url\s*=\s*https?:\/\/[^\|\}]*worldcat\.org[^\|\}]*\/(?:oclc|title)\/(\d+)[^\|\}]*([^\}]*\|\s*oclc\s*=\s*\1)/g, "$2") // delete worldcat url when |oclc= matches

.replace (/\|\s*url\s*=\s*https?:\/\/[^\|\}]*doi\.org\/([^\|\}]+)\s*([^\}]*\|\s*doi\s*=\s*\1)/gi, "$2") // delete doi url when |doi= matches

.replace (/\|\s*url\s*=\s*https?:\/\/[^\|\}]*jstor\.org\/stable\/([^\|\}]+)\s*([^\}]*\|\s*jstor\s*=\s*\1)/g, "$2") // delete jstor url when |jstor= matches

.replace (/\|\s*url *=[^\|\}]+PMC(\d+)\/?([^\}]*\| *[Pp][Mm][Cc] *= *\1)/g, "$2") // delete pmc url when |pmc= matches

.replace (/\|\s*url\s*=\s*https?:\/\/pubmed\.ncbi\.nlm\.nih\.gov\/(\d+)\/?\s*([^\}]*\|\s*pmid\s*=\s*\1)/g, "$2") // delete pmid url when |pmid= matches

.replace (/(\|\s*oclc\s*=\s*(\d+)[^\}]*)\|\s*url\s*=\s*https?:\/\/[^\|\}]*worldcat\.org[^\|\}]*\/(?:oclc|title)\/\2[^\|\}]*/g, "$1") // oclc other way round

.replace (/(\|\s*doi\s*=\s*([^\|\s]+)[^\}]*)\|\s*url\s*=\s*https?:\/\/[^\|\}]*doi\.org\/\2/g, "$1") // doi other way round

.replace (/(\|\s*jstor\s*=\s*([^\|\s]+)[^\}]*)\|\s*url\s*=\s*https?:\/\/[^\|\}]*jstor\.org\/stable\/\2/g, "$1") // jstor other way round

.replace (/(\|\s*pmid\s*=\s*(\d+)[^\}]*)\|\s*url\s*=\s*https?:\/\/pubmed\.ncbi\.nlm\.nih\.gov\/(\d+)\/?\s*/g, "$1") // pmid other way round

.replace (/\|\s*url\-status\s*=\s*(?:live|dead)?\s*\|\s*archive\-url\s*=\s*\|\s*archive\-date\s*=\s*([\|\}])/g, "$1") // a common parameter order mostly with 'live'; sometimes 'dead', sonetimes empty

.replace (/\|\s*url-status\s*=\s*dead[^\|\}]*/g, "") // delete |archive-url=

.replace (/(\|\s*(?:isbn|ISBN)\s*=\s*)(97[89]\-?\d{9}\-?\d\b)/g, "$1{{Format ISBN|$2}}") // format ISBN13

.replace (/(\|\s*(?:isbn|ISBN)\s*=\s*)(\d{9}\-?[\dX]\b)/g, "$1{{Format ISBN|$2}}") // format ISBN10

.replace (/(\{\{\s*(?:ISBN|[Ii]sbn)\s*\|\s*)(97[89]\-?\d{9}\-?\d\b)/g, "$1{{Format ISBN|$2}}") // format {{ISBN|}}

.replace (/(\{\{\s*(?:ISBN|[Ii]sbn)\s*\|\s*)(\d{9}\-?[\dX]\b)/g, "$1{{Format ISBN|$2}}") // format {{ISBN|}}

.replace (/(\|\s*date\s*=\s*)(\d{4})\-01(\s*\|)/g, "$1January $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-02(\s*\|)/g, "$1February $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-03(\s*\|)/g, "$1March $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-04(\s*\|)/g, "$1April $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-05(\s*\|)/g, "$1May $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-06(\s*\|)/g, "$1June $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-07(\s*\|)/g, "$1July $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-08(\s*\|)/g, "$1August $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-09(\s*\|)/g, "$1September $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-10(\s*\|)/g, "$1October $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-11(\s*\|)/g, "$1November $2$3")

.replace (/(\|\s*date\s*=\s*)(\d{4})\-12(\s*\|)/g, "$1December $2$3")

.replace (/(\|\s*page)s(\s*=\s*(?:\d+|[clxvi]+))(\s*[\|\}])/g, "$1$2$3") // replace |pages= with |page=

.replace (/(\|\s*|\s*location\s*=\s*)М\./g, "$1Moscow"); // replace Cyrillic М with Moscow

}

});

pathoschild.TemplateScript.add(

{

name:'normalize cs1|2',

script: function(editor)

{

editor

.replaceSelection(function(selected) {

var selected_len = selected.length;

while (true)

{

selected = selected.replace (/ *= */g, '='); // remove whitespace around an assignement operator

selected = selected.replace (/ *\| */g, '|'); // remove spaces around pipes

selected = selected.replace (/\{ +/g, '{'); // remove spaces ahead of template name

selected = selected.replace (/ +\}/g, '}'); // remove spaces at end of template

selected = selected.replace (/\|[\-a-z0-9]+=\|/g, '|'); // remove empty parameters =|

selected = selected.replace (/\|[\-a-z0-9]+=\}/g, '}'); // remove empty parameters =}

selected = selected.replace(/\|/g, ' |'); // normalize spacing around pipes

if (selected_len == selected.length)

break;

selected_len = selected.length;

}

return selected;

});

}

});

pathoschild.TemplateScript.add(

{

name:'dmy',

script: function(editor)

{

editor.replace (/\|\s*df\s*=\s*dmy[^\|\}]*/g, '');

}

});

pathoschild.TemplateScript.add(

{

name:'mdy',

script: function(editor)

{

editor.replace (/\|\s*df\s*=\s*mdy[^\|\}]*/g, '');

}

});

/* pathoschild.TemplateScript.add(

{

name:'native_name',

script: function(editor)

{

editor

.replace(/name_native/g, 'native_name')

.replace(/\|\s*native_name_lang[^\|\}]*([\|\}])/g, '$1');

}

});

  • / pathoschild.TemplateScript.add(

{

name:'langx',

script: function(editor)

{

editor

.replace(/(\{\{\s*[Ll]ang)\-/g, '$1x|');

}

});

});

}

//importScript('User:Trappist the monk/HarvErrors.js');

mw.loader.load( '/w/index.php?title=User:Trappist_the_monk/HarvErrors.js&action=raw&ctype=text/javascript' ); // Backlink: User:Trappist the monk/HarvErrors.js

//importScript('User:Trappist the monk/Sandbox/MediaWiki talk:RefToolbarLegacy.js');

//importScript('User:Ucucha/HarvErrors.js');

//importScript('User:Trappist the monk/script/MOSNUM dates.js'); // Trappist the monk/script/MOSNUM dates.js

//importScript('User:Ohconfucius/script/MOSNUM dates.js'); // reference

// Add custom CharInsert entries Help:CharInsert

window.charinsertCustom = {

"Wiki markup": ' custom: + {{code|lang=html|+}} +',

};

//Tell the Remember the dot syntax highlighter gadget to ignore unclosed br and hr tags

syntaxHighlighterSiteConfig = {

voidTags: ["br", "hr", "BR", "HR"],

};

mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Nardog/CodeEditorAssist.js&action=raw&ctype=text/javascript');