Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js

MediaWiki interface page
Revision as of 20:26, 31 December 2025 by Sfosteriam (talk | contribs) (c)

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

(function () {
  console.log("Running common.js code");
  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() {
    console.log("Running addCategoryClasses from wikipage.content hook");
    // MediaWiki provides categories in config on most page views
    const cats = mw.config.get('wgCategories');
    console.log("addCategoryClasses, got categories:", cats);

    if (!Array.isArray(cats) || !cats.length) return;

    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);
})();