Tip of the day
Collectibles you find give 1 extra achievement point per item!
MediaWiki:Gadget-HideTranslatedSearchResults.js
From Walkscape Walkthrough
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.
(function () {
'use strict';
// Only run on Special:Search
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') {
return;
}
// Match translated subpages like:
// Page/en
// Page/fr
// Page/it
// Page/pt-br
// Page/zh-hans
//
// Does NOT match normal subpages like:
// Guide/Mining
// Item/Source
//
// Language code rule here:
// /xx
// /xxx
// /xx-yyy
// /xxx-yyyy
var translatedSuffixRegex = /\/[a-z]{2,3}(?:-[a-z0-9]{2,8})?$/i;
function getResultTitle($result) {
// Standard search result title link
var $headingLink = $result.find('.mw-search-result-heading a').first();
if ($headingLink.length) {
return ($headingLink.attr('title') || $headingLink.text() || '').trim();
}
return '';
}
function filterSearchResults() {
var hiddenCount = 0;
$('.mw-search-result').each(function () {
var $result = $(this);
var title = getResultTitle($result);
if (!title) {
return;
}
if (translatedSuffixRegex.test(title)) {
$result.hide();
hiddenCount++;
}
});
updateNotice(hiddenCount);
}
function updateNotice(hiddenCount) {
var noticeId = 'translated-subpages-filter-notice';
var $existing = $('#' + noticeId);
if (!hiddenCount) {
$existing.remove();
return;
}
var message =
hiddenCount +
' translated subpage' +
(hiddenCount === 1 ? '' : 's') +
' hidden from search results.';
if ($existing.length) {
$existing.text(message);
return;
}
$('<div>')
.attr('id', noticeId)
.css({
margin: '0 0 1em 0',
padding: '0.75em 1em',
border: '1px solid #c8ccd1',
background: '#f8f9fa'
})
.text(message)
.insertBefore('.searchresults, .mw-search-results');
}
function observeChanges() {
var target = document.querySelector('.mw-search-results') ||
document.querySelector('.searchresults');
if (!target || !window.MutationObserver) {
return;
}
var observer = new MutationObserver(function () {
filterSearchResults();
});
observer.observe(target, {
childList: true,
subtree: true
});
}
$(function () {
filterSearchResults();
observeChanges();
});
}());
