MediaWiki:Anisa.js

Aus Phoenix-Larp Wiki

Version vom 6. September 2026, 09:32 Uhr von Becko (Diskussion | Beiträge) (Inhaltsverzeichnis im Anisa-Skin rechts anzeigen)

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* Inhaltsverzeichnis bei Anisa auf großen Bildschirmen rechts anzeigen */
(function () {
  mw.hook('wikipage.content').add(function () {
    if (!document.body.classList.contains('skin-anisa')) {
      return;
    }

    var toc = document.getElementById('toc');

    if (!toc || toc.dataset.anisaTocInitialized) {
      return;
    }

    toc.dataset.anisaTocInitialized = '1';

    var marker = document.createComment('Position des Inhaltsverzeichnisses');
    toc.parentNode.insertBefore(marker, toc);

    var panel = document.createElement('aside');
    panel.id = 'anisa-page-toc';
    panel.setAttribute('aria-label', 'Inhaltsverzeichnis');
    document.body.appendChild(panel);

    var mediaQuery = window.matchMedia('(min-width: 1200px)');

    function positionToc() {
      if (mediaQuery.matches) {
        panel.appendChild(toc);
        document.body.classList.add('anisa-has-page-toc');
      } else {
        if (marker.parentNode) {
          marker.parentNode.insertBefore(toc, marker.nextSibling);
        }

        document.body.classList.remove('anisa-has-page-toc');
      }
    }

    positionToc();

    if (mediaQuery.addEventListener) {
      mediaQuery.addEventListener('change', positionToc);
    } else {
      mediaQuery.addListener(positionToc);
    }
  });
})();