User:Ahecht/Scripts/TemplateSearch - Wikipedia
From Wikipedia, the free encyclopedia
Author(s) | Ahecht, based on User:SiBr4/TemplateSearch.js by User:SiBr4 |
---|---|
Status | Stable |
Updated | September 25, 2024 (4 months ago) |
Skins | Vector 2022, Vector 2010, MonoBook, Timeless, Minerva Neue, Modern, Cologne Blue |
Source | User:Ahecht/Scripts/TemplateSearch.js |
Script based on User:SiBr4/TemplateSearch.js by User:SiBr4, with added support for the Vector 2022 and Minerva Neue skins.
Allows using "TP:" and "{{" as shortcuts for "Template:" in the search box. "MD:" and "{{#invoke:" can also be used as shortcuts for "Module:". See Wikipedia:Village pump (proposals)/Archive 127#Prefix suggestion: TP: for Template:.
Install by adding the following row to your Special:MyPage/common.js, Special:MyPage/skin.js, or meta:Special:MyPage/global.js:
mw.loader.load( "//en.wikipedia.org/w/index.php?title=User:Ahecht/Scripts/TemplateSearch.js&action=raw&ctype=text/javascript" ); // Linkback: [[:en:User:Ahecht/Scripts/TemplateSearch.js]]
If you wish to add additional RegEx searches, add var SearchRegexes = {FIND:REPLACE}
before the above code to your common.js, skin.js, or global.js. For example, to replace T:
at the beginning of the search with Template:
, add:
var SearchRegexes = {"^(T:)":"Template:"}
Source code |
---|
/* Based on [[User:SiBr4/TemplateSearch.js]] by [[User:SiBr4]], with added support for the Vector 2022 and Minerva Neue skins. Allows using "TP:" and "{{" as shortcuts for "Template:" in the search box. See [[Wikipedia:Village pump (proposals)/Archive 127#Prefix suggestion: TP: for Template:]]. Install by adding the following row to your Special:MyPage/common.js, Special:MyPage/skin.js, or meta:Special:MyPage/global.js: mw.loader.load( "//en.wikipedia.org/w/index.php?title=User:Ahecht/Scripts/TemplateSearch.js&action=raw&ctype=text/javascript" ); // Linkback: [[:en:User:Ahecht/Scripts/TemplateSearch.js]] */ function addSearchBoxChangeListener(searchboxes) { searchboxes.forEach(function (searchbox) { if (searchbox.classList.contains("cdx-text-input__input") || searchbox.classList.contains("search") || searchbox.id == "searchInput") { searchbox.setAttribute("onkeyup","replaceBracesInSearch(this);"); searchbox.setAttribute("onpaste","replaceBracesInSearch(this);"); replaceBracesInSearch(searchbox); } } ); } var SearchRegexes = { "^(\\\{\\\{#invoke|[Mm][Dd]):":"Module:", "^(\\\{\\\{|[Tt][Pp]:)":"Template:", "\\\}\\\}$":"", ...SearchRegexes }; function replaceBracesInSearch(box) { for (var search in SearchRegexes) { re = new RegExp(search); if(re.test(box.value)) { box.value=box.value.replace(re,SearchRegexes[search]); box.dispatchEvent(new Event('input')); } } } $.when( mw.loader.using( 'mediawiki.util' ), $.ready ).then(function() { addSearchBoxChangeListener(document.getElementsByName("search")); var x = new MutationObserver(function () { addSearchBoxChangeListener(document.getElementsByName("search")); }); document.querySelectorAll(".search-box, .vector-search-box").forEach(function (box) { x.observe(box, { subtree: true, childList: true }); } ); } ); // |