MediaWiki:Anisa.js: Unterschied zwischen den Versionen

Aus Phoenix-Larp Wiki

Die Seite wurde geleert.
Markierung: Geleert
Inhaltsverzeichnis im Anisa-Skin rechts anzeigen
Zeile 1: Zeile 1:
/* 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);
    }
  });
})();

Version vom 6. September 2026, 09:32 Uhr

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