MediaWiki:Gadget-Site.js

Revision as of 12:16, 13 May 2026 by Sware (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// This gadget contains code that will run unconditionally for everyone - both on mobile and desktop.
// Consider instead adding your code to [[MediaWiki:Common.js]], [[MediaWiki:Mobile.js]], or a gadget.
// <nowiki>

const pageName = mw.config.get("wgPageName");
const ns = mw.config.get("wgNamespaceNumber");

/* ***** Page-specific code ***** */
switch (pageName) {
	case "MediaWiki:Gadgets-definition": // [[MediaWiki:Gadgets-definition]]
		importScript("MediaWiki:BetterGadgetsDefinition.js"); // [[MediaWiki:BetterGadgetsDefinition.js]]
		break;
	case "Special:Search": // [[Special:Search]]
		importScript("MediaWiki:FindTrans.js"); // [[MediaWiki:FindTrans.js]]
		break;
	case "Wiktionary:Fonts/list": // [[Wiktionary:Fonts/list]]
		if (mw.config.get("wgAction") === "view")
			importScript("MediaWiki:InteractiveFontList.js"); // [[MediaWiki:InteractiveFontList.js]]
		break;
}

if (
	document.querySelector(".mw-parser-output p:first-of-type") && [
		"Module:languages/code_to_canonical_name",
		"Module:languages/canonical_names",
		"Module:etymology_languages/code_to_canonical_name",
		"Module:etymology_languages/canonical_names",
		"Module:families/code_to_canonical_name",
		"Module:families/canonical_names",
		"Module:scripts/code_to_canonical_name",
		"Module:scripts/canonical_names",
	].some(title => pageName.startsWith(title))
)
	importScript("MediaWiki:UpdateLanguageNameAndCode.js"); // [[MediaWiki:UpdateLanguageNameAndCode.js]]

/* ***** Clean up category pages showing "0 c" or "0 e", e.g. [[Category:Pages with entries]] ***** */
for (const elem of document.querySelectorAll(".CategoryTreeItem bdi + span"))
	elem.textContent = elem.textContent
		.replace(/\b0 c, /, "")
		.replace(/, 0 [ep]\b/, "")
		.replace(/\(0 c\)/, "(0 e)");

/* ***** Template gadget for [[Module:UnitTests]]: e.g. [[Module:vi/testcases]] ***** */
for (const corner of document.querySelectorAll(".unit-tests .unit-tests-img-corner"))
	corner.addEventListener("click", () => corner.closest(".unit-tests").classList.toggle("unit-tests-hide-passing"));

// </nowiki>