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.

/* 

See [[User:Alex 21/script-categoriessort.js]], original script by [[User:Alex 21]]



The main script page is [[User:Epicgenius/sortcategories.js]].

*/

mw.loader.using("mediawiki.util", function () {

	// Only run script if user is editing an article

	if (!document.forms.editform || (mw.config.get("wgAction") !== "edit" && mw.config.get("wgAction") !== "submit")) {

		return;

	}

	$(function($) {

		/*

		if (

				config.mw.wgNamespaceNumber == 1 || //talk page

				config.mw.wgArticleId === 0 || // Page doesn't exist

		) {

			return;

		} else (

		)

		*/

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

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

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

				e.preventDefault();

	

					// Get textbox value

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

					var wpTextbox1_V = wpTextbox1.value;

					

					// Categories to check

					var category = "[[Category:";

					var categoryA = category+"A ";

					var categoryAn = category+"An ";

					var categoryThe = category+"The ";

					var categoryEnd = "]]"; // This might match to both categories and links

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

					var defaultSort = "{{DEFAULTSORT:";

					var stubTag = "-stub}}";

					var someTemplateEnd = "}}";

					

					// 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 categoriesEnd = wpTextbox1_V.lastIndexOf(categoryEnd);

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

					var textWithCategories = wpTextbox1_V.substr(categoriesStart,categoriesEnd-categoriesStart+2).trim();

					var textAfterCategories = wpTextbox1_V.substr(categoriesEnd+2).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);

						

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

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

						

						return a.localeCompare(b);

					});

					

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

					

					if (wpTextbox1_V.indexOf(defaultSort) < 0) {

						textWithCategories = "\n"+textWithCategories;

					} else {

						textWithCategories = textWithCategories;

					}

					

					if (wpTextbox1_V.indexOf(stubTag) < 0) {

						textWithCategories = textWithCategories;

					} else {

						textWithCategories = textWithCategories+"\n\n\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+textAfterCategories;

					

					setoptions(minor = 'true');

					setreason('sorted categories alphabetically via [[User:Epicgenius/sortcategories|script]]', 'append');

					doaction('diff');

				

			});

		});

	});

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

/* 

See [[User:Alex 21/script-categoriessort.js]], original script by [[User:Alex 21]]



The main script page is [[User:Epicgenius/sortcategories.js]].

*/

mw.loader.using("mediawiki.util", function () {

	// Only run script if user is editing an article

	if (!document.forms.editform || (mw.config.get("wgAction") !== "edit" && mw.config.get("wgAction") !== "submit")) {

		return;

	}

	$(function($) {

		/*

		if (

				config.mw.wgNamespaceNumber == 1 || //talk page

				config.mw.wgArticleId === 0 || // Page doesn't exist

		) {

			return;

		} else (

		)

		*/

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

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

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

				e.preventDefault();

	

					// Get textbox value

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

					var wpTextbox1_V = wpTextbox1.value;

					

					// Categories to check

					var category = "[[Category:";

					var categoryA = category+"A ";

					var categoryAn = category+"An ";

					var categoryThe = category+"The ";

					var categoryEnd = "]]"; // This might match to both categories and links

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

					var defaultSort = "{{DEFAULTSORT:";

					var stubTag = "-stub}}";

					var someTemplateEnd = "}}";

					

					// 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 categoriesEnd = wpTextbox1_V.lastIndexOf(categoryEnd);

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

					var textWithCategories = wpTextbox1_V.substr(categoriesStart,categoriesEnd-categoriesStart+2).trim();

					var textAfterCategories = wpTextbox1_V.substr(categoriesEnd+2).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);

						

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

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

						

						return a.localeCompare(b);

					});

					

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

					

					if (wpTextbox1_V.indexOf(defaultSort) < 0) {

						textWithCategories = "\n"+textWithCategories;

					} else {

						textWithCategories = textWithCategories;

					}

					

					if (wpTextbox1_V.indexOf(stubTag) < 0) {

						textWithCategories = textWithCategories;

					} else {

						textWithCategories = textWithCategories+"\n\n\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+textAfterCategories;

					

					setoptions(minor = 'true');

					setreason('sorted categories alphabetically via [[User:Epicgenius/sortcategories|script]]', 'append');

					doaction('diff');

				

			});

		});

	});

});

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook