User:Xover/cleanup.js

/* global $, mw */ "use strict";

// Make sure the necessary modules are loaded mw.loader.using(['mediawiki.util'], => {

// Wait for the page to be parsed (new-style $(document).ready) $( => {

/*    *  First check that this is a context we should be active in. */

// Only active on Page:-namespace pages. if (mw.config.get('wgCanonicalNamespace') !== 'Page') { return; }

// Only active on pages with content model 'proofread-page'. if (mw.config.get('wgPageContentModel') !== 'proofread-page') { return; }

// Only active when in edit/preview/diff mode. if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) < 0) { return; }

/*    *  Add portlets for the various commands. */

var cleanupPortlet = mw.util.addPortletLink(     'p-tb', '#', '🚮 Clean up text', 'ca-cleanup',      'Clean up whitespace and other issues.'    ); $(cleanupPortlet).click(event => {     event.preventDefault;      doCleanupText;    });

}); // END: $(document).ready }); // END: mw.loader.using

function doCleanupText { let OCR = $('#wpTextbox1').val; OCR = OCR.replace(/^\s+$/mg, ''); // Nuke lines consisting of only whitespace OCR = OCR.replace(/ +/g, ' ');

OCR = OCR.replace(/”(s|d|t)/g, '’$1'); OCR = OCR.replace(/s” /g, 's’ '); OCR = OCR.replace(/&mdash;/g, '—'); OCR = OCR.replace(/- /g, ''); OCR = OCR.replace(/ (’|”|;|!|\?|:)/g, '$1'); OCR = OCR.replace(/(‘|“) /g, '$1'); OCR = OCR.replace(/^ +(\S)/mg, '$1'); OCR = OCR.replace(/(\S) +$/mg, '$1'); OCR = OCR.replace(/(\S)\s+$/g, '$1');

$('#wpTextbox1').val(OCR); } // END: doCleanupText