User:Jonesey95/AutoEd/month.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
var AutoEd_baseurl = 'http://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
if (location.protocol === 'https:') {
  AutoEd_baseurl = 'https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
}
 
mw.loader.load(AutoEd_baseurl + 'core1.js'); //Imports the "framework" script needed to make this function

//Sets variable configuration
//autoEdTag1 = "Fix ISBN using [[WP:AutoEd|AutoEd]]"; //Tweaks edit summary
//autoEdLinkName1 = "AutoEd one-off"; //Changes the link name at the top of the page
//autoEdLinkHover1 = "Run AutoEd to fix one-off problem"; //When user hovers over link

//autoEdTag1 = "Fix access-date parameter error"
autoEdTag1 = "Fix invalid HTML tag or other HTML Tidy-related tag error"; //Tweaks edit summary
autoEdLinkName1 = "AutoEd self-closed"; //Changes the link name at the top of the page
autoEdLinkHover1 = "Run AutoEd to fix self-closed tags"; //When user hovers over link

//Set up function
function ReplaceOneOff(str) { //function to perform one-off replacement 

  //Fix self-closed tags
  str = str.replace(/\<b\/\>fan71/g, '\<nowiki\/\>fan71'); //custom for one user's sig
  str = str.replace(/pie\]\]\<sup\/\>/g, '\pie\]\]\<sup\>'); //custom for one user's sig
  str = str.replace(/\<\/sup\/\>\<p style=\"font\-family/g, '\<p style=\"font\-family'); //custom for one user's sig
  str = str.replace(/\<font style=\"font-variant:small\-caps;\" \/\>/g, ''); //custom for one user's sig
  str = str.replace(/\<span style=\"color\"*\/\>/g, ''); //custom for one user's sig
  str = str.replace(/\<font color=\"[a-z ]+\"*\/\>/g, ''); //custom for one user's sig
  str = str.replace(/\<font style=\"*[a-z ]+\"*\/\>/g, ''); //custom for one user's sig
  str = str.replace(/\<\/*s *\/\>/gi, '\<\/s\>');
  str = str.replace(/\<\/*em *\/\>/gi, '\<\/em\>');
  str = str.replace(/\<\/*u *\/\>/gi, '\<\/u\>');
  str = str.replace(/\<\/*h1 *\/\>/gi, '\<\/h1\>');
  str = str.replace(/\<\/*h2 *\/\>/gi, '\<\/h2\>');
  str = str.replace(/\<\/*h3 *\/\>/gi, '\<\/h3\>');
  str = str.replace(/\<\/*h4 *\/\>/gi, '\<\/h4\>');
  str = str.replace(/\<\/*h5 *\/\>/gi, '\<\/h5\>');
  str = str.replace(/\<\/*td *\/\>/gi, '\<td\>\<\/td\>');
  str = str.replace(/\<\/*td *(colspan=\d+)\/\>/gi, '\<td $1\>\<\/td\>');
  str = str.replace(/\<\/*tr *\/\>/gi, '\<tr\>\<\/tr\>');
  str = str.replace(/\<\/*th *\/\>/gi, '\<th\>\<\/th\>');
  str = str.replace(/\<\/*strike *\/\>/gi, '\<\/strike\>');
  str = str.replace(/\<\/*small *\/\>/gi, '\<\/small\>');
  str = str.replace(/\<\/*big *\/\>/gi, '\<\/big\>');
  str = str.replace(/\<\/*center *\/\>/gi, '\<\/center\>');
  str = str.replace(/\<\/*del *\/\>/gi, '\<\/del\>');
  str = str.replace(/\<\/*i *\/\>/gi, '\<\/i\>');
  str = str.replace(/\<span *\/\>/gi, '\<nowiki\/\>');
  str = str.replace(/\<font *\/\>/gi, '\<nowiki\/\>');
  str = str.replace(/\<\/span *\/\>/gi, '\<\/span\>');
  str = str.replace(/\<\/*sup *\/\>/gi, '\<\/sup\>');
  str = str.replace(/\<\/*sub *\/\>/gi, '\<\/sub\>');
  str = str.replace(/\<\/*div *\/\>/gi, '\<\/div\>');
  str = str.replace(/\<\/*blockquote *\/\>/gi, '\<\/blockquote\>');
  str = str.replace(/(\<span id\s*=\s*\"*[ça-zA-Z0-9\-_ \(\)\–\.\,\:\&\'\"\;\/\%\!]+\"* *)\/\>/gi, '$1 \>\<\/span\>');
  str = str.replace(/(\<span class\s*=\s*\"*[ça-zA-Z0-9\-_ ]+\"* *)\/\>/gi, '$1 \>\<\/span\>');
  str = str.replace(/(\<div id=[\'\"]*[ça-zA-Z0-9\-_ ]+[\'\"]* *)\/\>/gi, '$1 \>\<\/div\>');
  str = str.replace(/\<\/*p *\/\>/gi, '\<p\>');
  str = str.replace(/(\<p id=[\'\"][ça-zA-Z0-9\-_ ]+[\'\"] *)\/\>/gi, '$1\>\<\/p\>');
  str = str.replace(/(\<div style=\"[a-zA-Z0-9_:; #%\-]+\" *)\/\>/gi, '$1 \>\<\/div\>');
  str = str.replace(/(\<div class=\"[a-zA-Z0-9_:; #%\-]+\" *)\/\>/gi, '$1 \>\<\/div\>');
  str = str.replace(/(\<div id=[\'\"][ça-zA-Z0-9\-_ ]+[\'\"] +style=\"[a-zA-Z0-9_:; #%\-]+[\'\"] *)\/\>/gi, '$1 \>\<\/div\>');
  str = str.replace(/(\<td style=\"[a-zA-Z0-9_:; #%\-=]+\" *)\/\>/gi, '$1 \>\<\/td\>');
  //Checkwiki error #2
  str = str.replace(/\<\s*\/\s*br[\s\|\/\?\.]*\>/gi, '\<br\/\>');
  str = str.replace(/\<\s*\/*\s*br\s*[\|\/\?\.]+\s*\/\>/gi, '\<br\/\>');
  str = str.replace(/\<\s*\/*\s*b r\s*\|*\s*\/*\s*\>/gi, '\<br\/\>');
  str = str.replace(/\<\s*\/*\s*br\s*[\\\?]+\s*\/*>/gi, '\<br\/\>');
  str = str.replace(/\<\s*\<\/*\s*br\s*\/*>/gi, '\<br\/\>');
  str = str.replace(/\<\/br *>/gi, '\<br\/\>');
  //Other tidy errors
  str = str.replace(/\<br clear[=:]"*all;*"* *\/*>/gi, '{{clear}}');
  str = str.replace(/\<br clear[=:]"*both;*"* *\/*>/gi, '{{clear}}');
  str = str.replace(/\<br style="clear[=:]"*both;*"* *\/*>/gi, '{{clear}}');
  str = str.replace(/\<br clear[=:]"*left;*"* *\/*>/gi, '{{clear left}}');
  str = str.replace(/\<br clear[=:]"*right;*"* *\/*>/gi, '{{clear right}}');
  str = str.replace(/\<\/br\s*>/gi, '\<br\/\>');
  str = str.replace(/\<br\s*\n\s*\/*>/gi, '\<br\/\>');
 
  //access-date month only
  //str = str.replace(/({{\s*[cC]it[ea](?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))(\|\s*access-*date\s*=\s*)([a-z]+ 201[56])(\s*[\}\|])/gi, '$1$21 $3$4');

  
  //Add display-editors
  //str = str.replace(/({{\s*[cC]it[ea](?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))(\|\s*editor\-last4\s*=)/gi, '$1\|display\-editors = 3 $2');
  //str = str.replace(/({{\s*[cC]it[ea](?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))(\|\s*editor4\-last\s*=)/gi, '$1\|display\-editors = 3 $2');
  //str = str.replace(/({{\s*[cC]it[ea](?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))(\|\s*editor4\s*=)/gi, '$1\|display\-editors = 3 $2');

  //One-off replacement of specific author
  //str = str.replace(/({{\s*[cC]ite web(?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*first=(Registrar General \& Census Commissioner, India)\s*([\}\|])/gi, '$1 \|publisher=$2 $3');
 
  //Fix arXiv/journal parameters
  //str = str.replace(/{{\s*[cC]it[ea tionwbjulr]+((?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*url\s*=\s*http:\/\/arxiv\.org\/abs\/\d\d\d\d\.\d\d\d\d\s*\|\s*journal\s*=\s*arxiv:(\d\d\d\d\.\d\d\d\d)\s*[\s\[\]a-z,-\.\:]*([\}\|])/gi, '\{\{cite arxiv$1\|arxiv= $2$3');
  //str = str.replace(/{{\s*[cC]it[ea tionwbjulr]+((?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*url\s*=\s*http:\/\/arxiv\.org\/abs\/\d\d\d\d\.\d\d\d\d\d\s*\|\s*journal\s*=\s*arxiv:(\d\d\d\d\.\d\d\d\d\d)\s*[\s\[\]a-z,-\.\:]*([\}\|])/gi, '\{\{cite arxiv$1\|arxiv= $2$3');
  //str = str.replace(/{{\s*[cC]it[ea tionwbjulr]+((?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*journal\s*=\s*arxiv:(\d\d\d\d\.\d\d\d\d)\s*[\s\[\]a-z,-\.\:]*([\}\|])/gi, '\{\{cite arxiv$1\|arxiv= $2$3');
  //str = str.replace(/{{\s*[cC]it[ea tionwbjulr]+((?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*journal\s*=\s*arxiv:(\d\d\d\d\.\d\d\d\d\d)\s*[\s\[\]a-z,-\.\:]*([\}\|])/gi, '\{\{cite arxiv$1\|arxiv= $2$3');
  //str = str.replace(/{{\s*cite arxiv((?:[^}{]*(?:\{\{[^}{]*}}[^}{]*)*))\|\s*url\s*=\s*http:\/\/arxiv\.org\/abs\/\d\d\d\d\.\d*\s*([\}\|])/gi, '\{\{cite arxiv$1 $2');

  //Fix ISBN
  //str = str.replace(/i[sS][bB][nN]\s*([\d-X]+)/g, 'ISBN $1');
  //str = str.replace(/I[sS][bB]n\s*([\d-X]+)/g, 'ISBN $1');
  //str = str.replace(/\[*ISBN *[#:−‐–—‑-] *([\d-X]+)\]*/gi, 'ISBN $1');
  //str = str.replace(/\[*ISBN[ -]1[03]: *([\d-X]+)\]*/g, 'ISBN $1');
  //str = str.replace(/\[*ISBN *\t *([\d-X]+)\]*/g, 'ISBN $1');
  //str = str.replace(/\| *id *= *isbn *=/gi, '\| ISBN =');
  //str = str.replace(/([;\.,\)\]] *)ISBN *[=:\t] *([\d-X]+)/gi, '$1ISBN $2');
  //str = str.replace(/([ \[\>,])(books\.google)/g, '$1http:\/\/$2');
  //str = str.replace(/(ISBN\s+)(97[89][\d-]+)\s*[,\/;:\(]\s*[\d-][\d-][\d-][\d-][\d-][\d-][\d-][\d-][\d-][\d-X]+\)*/gi, '$1$2');
  //str = str.replace(/(ISBN\s+)\d-*\d-*\d-*\d-*\d-*\d-*\d-*\d-*\d-*[\dX]\s*[\s/]\s*(97[89][\d-]+)/gi, '$1$2');
  //str = str.replace(/(ISBN\s+)[\d-X]+\s*[,;:\/]*\s*ISBN\s*([\d-]+)/gi, '$1$2');
  // Source in a bunch of articles with wrong ISBN
  //str = str.replace(/isbn=9791234567896/gi, 'isbn=9788890390227');
  
  //str = str.replace(/\[+:*[a-z]*:*Special: *Book[sS]ources\/[\d-X]+\|(ISBN\s+[\d-X]+)\]+/g, '$1');

  //Fix ISBN dashes
  //str = str.replace(/(\s*isbn\s*[\d- ]+)[−‐–—‑\.]([\d- ]+)[=–—‐‑\.]([\d- ]+)[=–—‐‑\.]([\d-X ]+)[=‐–—‑\.]([\d- ]+)[=‐–—‑\.](\d+)/gi, '$1-$2-$3-$4-$5-$6');
  //str = str.replace(/(\s*isbn\s*[\d- ]+)[−‐–—‑\.]([\d- ]+)[=–—‐‑\.]([\d- ]+)[=–—‐‑\.]([\d-X ]+)[=‐–—‑\.](\d+)/gi, '$1-$2-$3-$4-$5');
  //str = str.replace(/(\s*isbn\s*[\d- ]+)[−‐–—‑\.]([\d- ]+)[=–—‐‑\.]([\d- ]+)[=–—‐‑]([\d-X]+)/gi, '$1-$2-$3-$4');
  //str = str.replace(/(\s*isbn\s*[\d- ]+)[−‐–—‑\.]([\d- ]+)[=–—‐‑]([\d-X]+)/gi, '$1-$2-$3');
  //str = str.replace(/(\s*isbn\s*[\d- ]+)[−‐–—‑]([\d-X ]+)/gi, '$1-$2');

  return str;
}
 
function autoEdFunctions1() { //Activates individual modules when "auto ed" tab is clicked
    var txt = document.editform.wpTextbox1; //This stays as "Textbox1". Do not increment.
    txt.value = ReplaceOneOff(txt.value);
//    txt.value = autoEdWhitespace(txt.value);
}