Snippets/Style pages based on categories
< Snippets
![]() | |
---|---|
Language(s): | JavaScript |
Compatible with: | MediaWiki 1.17+ |
Description
editAdds a CSS class to the <body> tag for every category the current page belongs to. This can be useful to apply specific styles to all pages on the wiki that are included on a given category. Each class will have a "cat-
" prefix followed by the category name, with spaces and dots converted to underscores and special characters encoded.
You can later write styles like body.cat-Some_category
to apply styles to pages belonging to that category.
Code
edit/**
* Adds CSS classes to the body tag based on the categories this page belongs to
*
* @source https://www.mediawiki.org/wiki/Snippets/Style_pages_based_on_categories
* @revision 2016-01-18
*/
(function($, mw) {
var fn = function() {
var cats = mw.config.get('wgCategories'), newClasses;
if (cats) {
newClasses = $.map(cats, function(el) {
return 'cat-' + encodeURIComponent(el.replace(/[ .]/g, '_')).replace(/%/g, '_');
}).join(' ');
$(document.body).addClass(newClasses);
}
};
if (document.body) {
fn();
} else {
$(fn);
}
})(jQuery, mw);
See also
edit- Extension:AddBodyClass, the preferred way to do that if you can install extensions.