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
/**
 * Minerva (mobile): Link "The Tasteful 8" ins Hamburger-Menü einfügen
 * Ziel: /wiki/Kategorie:The_Tasteful_8
 * Robust gegen DOM-Varianten; hängt den Link unten bei den Sitelinks an.
 */
(function () {
  if (mw.config.get('skin') !== 'minerva') return;

  var LINK_ID = 'menu-the-tasteful-8';
  var LINK_TEXT = 'The Tasteful 8';
  var LINK_HREF = '/wiki/Kategorie:The_Tasteful_8';

  function makeItem(doc) {
    var li = doc.createElement('li');
    li.id = LINK_ID;
    // gängige Minerva-Klassen; falls sie fehlen, stört es nicht
    li.className = 'menu__item';
    var a = doc.createElement('a');
    a.className = 'menu__item--link';
    a.href = LINK_HREF;
    a.textContent = LINK_TEXT;
    li.appendChild(a);
    return li;
  }

  function findSiteLinksUL(root) {
    // 1) Versuche, die UL mit "Über ADOS Wiki" oder "Haftungsausschluss" zu finden
    var anchors = root.querySelectorAll('nav a, .menu a, #mw-mf-page-left a');
    var targetUL = null;
    anchors.forEach(function (a) {
      var t = (a.textContent || '').trim();
      if (t === 'Über ADOS Wiki' || t === 'Haftungsausschluss') {
        var ul = a.closest('ul');
        if (ul) targetUL = ul;
      }
    });
    if (targetUL) return targetUL;

    // 2) Fallback: nimm die letzte Menü-UL im Drawer
    var lists = root.querySelectorAll('#mw-mf-page-left nav ul, nav.minerva-navigation ul, .menu ul');
    return lists.length ? lists[lists.length - 1] : null;
  }

  function insertLink() {
    var drawer = document.getElementById('mw-mf-page-left') || document.body;
    var ul = findSiteLinksUL(drawer);
    if (!ul) return false;
    if (ul.querySelector('#' + LINK_ID)) return true; // schon drin
    ul.appendChild(makeItem(document)); // unten anhängen
    return true;
  }

  function arm() {
    // 1) Sofort versuchen
    insertLink();

    // 2) Beobachte DOM-Änderungen (wenn Nutzer den Burger öffnet / Lazy-Build)
    var mo = new MutationObserver(function () { insertLink(); });
    mo.observe(document.body, { childList: true, subtree: true });

    // 3) Sicherheitshalber ein paar Retries (MobileFrontend initialisiert asynchron)
    var tries = 0;
    var timer = setInterval(function () {
      tries++;
      var ok = insertLink();
      if (ok || tries > 10) clearInterval(timer);
    }, 250);
  }

  if (mw.hook) {
    mw.hook('mobileFrontend.pageReady').add(arm);
  }
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', arm);
  } else {
    arm();
  }
})();