User:Aaron Liu/SortKeyDeThe.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.
/*
 * Adds sort keys to tables with a "The" in front of a cell's data and adds a sort key for that cell without the The.
 * May have quite a bit of false positives if any non-title begins with "The". Please check over results.
 * I strongly recommend you include this with other AutoEd modules according to the instructions at [[Wikipedia:AutoEd/Customization]].
 * If not, this will still be usable standalone, but still.
 */
function autoEdSortKeyDeThe( str ) {
	str = str.replace( /^\| The \[\[(\w*)/gm, '| data-sort-value="$1" | The [[$1' )
		.replace( /^\| \[\[The (\w*)/gm, '| data-sort-value="$1" | [[The $1' );
	return str;
}

$.when( $.ready ).then( function () {
	if ( importScript( 'Wikipedia:AutoEd/core.js' ) ) { // if not otherwise using AutoEd
		console.log( 'imported' );

		window.autoEdFunctions = function () {
			const box = document.editform.wpTextbox1;
			const str = box.value;
			const newstr = autoEdSortKeyDeThe( str );
			if ( newstr !== str ) { // don't confuse or tag if no fixes
				box.value = newstr;
			} else {
				autoEdTag = '';
				autoEdClick = false;
				mw.notify( 'No changes needed!' );
			}
		};
		autoEdMinor = false;
		autoEdLinkName = 'DeThe';
		autoEdLinkHover = 'Add sort keys that don\'t have "The" in front of them';
		autoEdTag = 'added sort keys that don\'t have "The" with [[User:Aaron Liu/SortKeyDeThe.js]]';
	}
} );