Sfosteriam (talk | contribs) m (c) |
Sfosteriam (talk | contribs) mNo edit summary |
||
| Line 2: | Line 2: | ||
(function () { |
(function () { |
||
| − | console.log("Running common.js code"); |
||
function slugifyCategory(cat) { |
function slugifyCategory(cat) { |
||
// Turn category names into a safe CSS class suffix |
// Turn category names into a safe CSS class suffix |
||
| Line 14: | Line 13: | ||
function addCategoryClasses() { |
function addCategoryClasses() { |
||
| ⚫ | |||
// MediaWiki provides categories in config on most page views |
// MediaWiki provides categories in config on most page views |
||
const cats = mw.config.get('wgCategories'); |
const cats = mw.config.get('wgCategories'); |
||
| − | console.log("addCategoryClasses, got categories:", cats); |
||
| − | if (!Array.isArray(cats) || !cats.length) |
+ | if (!Array.isArray(cats) || !cats.length) { |
| ⚫ | |||
| + | } |
||
cats.forEach(function (cat) { |
cats.forEach(function (cat) { |
||
Latest revision as of 20:29, 31 December 2025
/* Any JavaScript here will be loaded for all users on every page load. */
(function () {
function slugifyCategory(cat) {
// Turn category names into a safe CSS class suffix
return String(cat)
.trim()
.toLowerCase()
.replace(/_/g, '-')
.replace(/\s+/g, '-')
.replace(/[^a-z0-9-]/g, '');
}
function addCategoryClasses() {
// MediaWiki provides categories in config on most page views
const cats = mw.config.get('wgCategories');
if (!Array.isArray(cats) || !cats.length) {
console.log("addCategoryClasses, no categories found");
}
cats.forEach(function (cat) {
var slug = slugifyCategory(cat);
if (slug) document.body.classList.add('cat-' + slug);
});
}
// Run on initial load and after partial page updates
mw.hook('wikipage.content').add(addCategoryClasses);
})();