MediaWiki:Common.js

From RPG Continuum Wiki
Revision as of 05:23, 11 July 2026 by Mrbobert (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 () {

if (new URLSearchParams(window.location.search).get('embed') === '1') {
    document.body.classList.add('rpgc-embed');
}

function applyWidthMode() {
    var narrowWindow = window.matchMedia('(max-width: 950px)').matches;
    var mode = localStorage.getItem('rpgc-width-mode') || 'readable';

    document.body.classList.remove(
        'rpgc-readable-width',
        'rpgc-full-width',
        'rpgc-narrow-width'
    );

    if (narrowWindow) {
        document.body.classList.add('rpgc-narrow-width');
    } else {
        document.body.classList.add(
            mode === 'full' ? 'rpgc-full-width' : 'rpgc-readable-width'
        );
    }

    var button = document.getElementById('rpgc-width-toggle');

    if (button) {
        button.textContent =
            mode === 'full' ? 'Readable width' : 'Full width';
    }
}

    function addToggle() {
        if (document.getElementById('rpgc-width-toggle')) return;

        var title = document.querySelector('.firstHeading, .mw-first-heading');
        if (!title) return;

        var button = document.createElement('button');
        button.id = 'rpgc-width-toggle';
        button.type = 'button';

        button.addEventListener('click', function () {
            var current = localStorage.getItem('rpgc-width-mode') || 'readable';
            localStorage.setItem('rpgc-width-mode', current === 'full' ? 'readable' : 'full');
            applyWidthMode();
        });

        title.appendChild(button);
        applyWidthMode();
    }

    $(addToggle);
    mw.hook('wikipage.content').add(addToggle);
window.addEventListener('resize', applyWidthMode);
})();