User:Alien333/clean.js

From Wikisource
Jump to navigation Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Cmd-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (Cmd-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences

For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// WARNING: this changes the content of edit boxes automatically on loading, and therefore has potential for huge problems. Normally only in page ns, but it can mess up and "clean" itself 
/* global $, mw */
"use strict";
mw.loader.using(['mediawiki.util'], () => {

  $(() => { 
  	
    if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) < 0) { // if not editing
        return;
    }
    
    if (mw.config.get('wgCanonicalNamespace') == 'Page' && mw.config.get('wgPageContentModel') == 'proofread-page') { // Page:
	    
	    var cleanbtn = mw.util.addPortletLink("p-tb", "#", "Clean", "clean", "Do a little bit of formatting.");
	    
	    $(cleanbtn).click(event => {
	    	event.preventDefault();
	    	doclean();
	    });
	    doclean();
    }
  });
});
var err = [ // formatting to do
	"<!--", "__COMM_BEGIN__",
	"-->", "__COMM_END__",
    "“","\"",
    "”", "\"",
    " ;",";",
    " !","!",
    " ?", "?",
    "’","'",
    " ;", ";",
    "‘","'",
    "---","—",
    "--","—",
    "–","—",
    "―","—",
    " — ", "—",
    "— ", "—",
    " —", "—",
    '—" ', '—"',
    ' "—', '"—',
    "—' ","—'",
    " '—","'—",
    " :",":",
    "  ", " ",
    " 0 ", " O ",
    "\n0 ", "\nO ",
    ":0 ", ":O ",
    '"0 ', '"O ',
    "'0 ", "'O ",
    "—0 ", "—O ",
    ' " \n', '" \n',
    " ' \n", "' \n",
    ' \n" \n', '"\n',
    '\n" ', '\n"',
    " \n' \n", "\n'\n",
    "\n' ", "\n'",
    "__COMM_BEGIN__", "<!--",
    "__COMM_END__", "-->",
];
function clean(s) { // use err 
    for (var i = 0; i < err.length; i+=2) {
        s = s.replaceAll(err[i], err[i+1]);
    }
    return s;
}

function doclean() { // clean
	var l = $('#wpTextbox1').val();
	l = clean(l);
	$('#wpTextbox1').val(l);
}