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.

$(function($) {

	mw.loader.using( 'mediawiki.util' ).then( function () {

		var portletlink = mw.util.addPortletLink('p-tb', '#', 'Sort categories');

		$(portletlink).click( function(e) {

			e.preventDefault();

			// Determine if we need to go to the editing page.

			var loc = window.location.href; 

			if (loc.indexOf('action=edit') < 0 && loc.indexOf('action=submit') < 0) {

				alert("Go to the edit page to use this script.");

			} else {

				// Get textbox value

				var wpTextbox1 = document.getElementById('wpTextbox1');

				var wpTextbox1_V = wpTextbox1.value;

				

				// Categories to check

				var category = "[[Category:";

				var categoryA = category+"A ";

				var categoryThe = category+"The ";

				var categoryEponymous = category+mw.config.get("wgTitle");

				

				// Get the text up to the start of the categories, and then all of the text with the categories.

				var categoriesStart = wpTextbox1_V.indexOf(category);

				var textBeforeCategories = wpTextbox1_V.substr(0, categoriesStart).trim();

				var textWithCategories = wpTextbox1_V.substr(categoriesStart).trim();

				

				// Categories should be on new lines, so split by new line, sort alphabetically with a few checks, then join again with new lines.

				// Checks: eponymous categories are listed first; categories are sorted without preceding "The"

				var splitCategories = textWithCategories.split("\n");

				splitCategories.sort(function(a, b) {

					if (a.substr(0, categoryEponymous.length) == categoryEponymous) return -1e8;

					if (b.substr(0, categoryEponymous.length) == categoryEponymous) return 1e8;

					

					if (a.substr(0, categoryThe.length) == categoryThe) a = a.replace(categoryThe, category);

					if (b.substr(0, categoryThe.length) == categoryThe) b = b.replace(categoryThe, category);

					

					if (a.substr(0, categoryA.length) == categoryA) a = a.replace(categoryA, category);

					if (b.substr(0, categoryA.length) == categoryA) b = b.replace(categoryA, category);

					

					return a.localeCompare(b);

				});

				textWithCategories = splitCategories.join("\n");

				

				// Merge pre-category text back with the sorted and joined category text, place back in textbok and add summary.

				wpTextbox1.value = textBeforeCategories+"\n"+textWithCategories+"\n";

				document.getElementById('wpSummary').value += "Sorted categories alphabetically via [[User:Alex 21/script-categoriessort|script]].";

				document.getElementById('wpMinoredit').checked = true;

			}

		});

	});

});
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.

$(function($) {

	mw.loader.using( 'mediawiki.util' ).then( function () {

		var portletlink = mw.util.addPortletLink('p-tb', '#', 'Sort categories');

		$(portletlink).click( function(e) {

			e.preventDefault();

			// Determine if we need to go to the editing page.

			var loc = window.location.href; 

			if (loc.indexOf('action=edit') < 0 && loc.indexOf('action=submit') < 0) {

				alert("Go to the edit page to use this script.");

			} else {

				// Get textbox value

				var wpTextbox1 = document.getElementById('wpTextbox1');

				var wpTextbox1_V = wpTextbox1.value;

				

				// Categories to check

				var category = "[[Category:";

				var categoryA = category+"A ";

				var categoryThe = category+"The ";

				var categoryEponymous = category+mw.config.get("wgTitle");

				

				// Get the text up to the start of the categories, and then all of the text with the categories.

				var categoriesStart = wpTextbox1_V.indexOf(category);

				var textBeforeCategories = wpTextbox1_V.substr(0, categoriesStart).trim();

				var textWithCategories = wpTextbox1_V.substr(categoriesStart).trim();

				

				// Categories should be on new lines, so split by new line, sort alphabetically with a few checks, then join again with new lines.

				// Checks: eponymous categories are listed first; categories are sorted without preceding "The"

				var splitCategories = textWithCategories.split("\n");

				splitCategories.sort(function(a, b) {

					if (a.substr(0, categoryEponymous.length) == categoryEponymous) return -1e8;

					if (b.substr(0, categoryEponymous.length) == categoryEponymous) return 1e8;

					

					if (a.substr(0, categoryThe.length) == categoryThe) a = a.replace(categoryThe, category);

					if (b.substr(0, categoryThe.length) == categoryThe) b = b.replace(categoryThe, category);

					

					if (a.substr(0, categoryA.length) == categoryA) a = a.replace(categoryA, category);

					if (b.substr(0, categoryA.length) == categoryA) b = b.replace(categoryA, category);

					

					return a.localeCompare(b);

				});

				textWithCategories = splitCategories.join("\n");

				

				// Merge pre-category text back with the sorted and joined category text, place back in textbok and add summary.

				wpTextbox1.value = textBeforeCategories+"\n"+textWithCategories+"\n";

				document.getElementById('wpSummary').value += "Sorted categories alphabetically via [[User:Alex 21/script-categoriessort|script]].";

				document.getElementById('wpMinoredit').checked = true;

			}

		});

	});

});

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook