MediaWiki:Gadget-Site.js: Difference between revisions

From Linguifex
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 13: Line 13:
case "Special:Search": // [[Special:Search]]
case "Special:Search": // [[Special:Search]]
importScript("MediaWiki:FindTrans.js"); // [[MediaWiki:FindTrans.js]]
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;
break;
}
}

Latest revision as of 12:16, 13 May 2026

// 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;
}

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>