MediaWiki:Common.js: Difference between revisions
From Rest of What I Know
Created page with "→Any JavaScript here will be loaded for all users on every page load.: (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = 'https://www.googletagmanager.com/gtag/js?id=AW-662860443'; document.head.appendChild(ga); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-662860443'); })();" |
Retain only mainspace |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/ | // Reverse sorting for Category:Blog; hide Template:BlogPreload; pretty link text; skip non-Mainspace | ||
$(function() { | |||
if (mw.config.get('wgCanonicalNamespace') !== 'Category' || | |||
mw.config.get('wgTitle') !== 'Blog') return; | |||
(function() { | var $categoryList = $('#mw-pages'); | ||
if (!$categoryList.length) return; | |||
var $items = $categoryList.find('li'); | |||
$items = $items.filter(function() { | |||
var $a = $(this).find('a').first(); | |||
var titleAttr = ($a.attr('title') || '').replace(/_/g, ' '); | |||
// Explicitly drop Template:BlogPreload | |||
if (titleAttr === 'Template:BlogPreload') return false; | |||
})(); | |||
// Ensure it’s a mainspace page: ns=0 | |||
// Use MediaWiki’s title parser | |||
var ns = mw.Title.newFromText(titleAttr).namespace; | |||
return ns === 0; | |||
}); | |||
// Rewrite anchor text if matches Blog/YYYY-MM-DD/Title | |||
$items.each(function() { | |||
var $a = $(this).find('a').first(); | |||
var titleAttr = ($a.attr('title') || $a.text() || '').replace(/_/g, ' '); | |||
var m = titleAttr.match(/^Blog\/(\d{4}-\d{2}-\d{2})\/(.+)$/); | |||
if (m) { | |||
$a.text(m[1] + ' ' + m[2]); | |||
} | |||
// otherwise leave as-is | |||
}); | |||
// Sort by display text, reverse | |||
$items.detach().sort(function(a, b) { | |||
var ta = $(a).find('a').first().text(); | |||
var tb = $(b).find('a').first().text(); | |||
return tb.localeCompare(ta); | |||
}); | |||
$categoryList.empty().append($items); | |||
}); | |||
Latest revision as of 03:55, 23 September 2025
// Reverse sorting for Category:Blog; hide Template:BlogPreload; pretty link text; skip non-Mainspace
$(function() {
if (mw.config.get('wgCanonicalNamespace') !== 'Category' ||
mw.config.get('wgTitle') !== 'Blog') return;
var $categoryList = $('#mw-pages');
if (!$categoryList.length) return;
var $items = $categoryList.find('li');
$items = $items.filter(function() {
var $a = $(this).find('a').first();
var titleAttr = ($a.attr('title') || '').replace(/_/g, ' ');
// Explicitly drop Template:BlogPreload
if (titleAttr === 'Template:BlogPreload') return false;
// Ensure it’s a mainspace page: ns=0
// Use MediaWiki’s title parser
var ns = mw.Title.newFromText(titleAttr).namespace;
return ns === 0;
});
// Rewrite anchor text if matches Blog/YYYY-MM-DD/Title
$items.each(function() {
var $a = $(this).find('a').first();
var titleAttr = ($a.attr('title') || $a.text() || '').replace(/_/g, ' ');
var m = titleAttr.match(/^Blog\/(\d{4}-\d{2}-\d{2})\/(.+)$/);
if (m) {
$a.text(m[1] + ' ' + m[2]);
}
// otherwise leave as-is
});
// Sort by display text, reverse
$items.detach().sort(function(a, b) {
var ta = $(a).find('a').first().text();
var tb = $(b).find('a').first().text();
return tb.localeCompare(ta);
});
$categoryList.empty().append($items);
});
