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
mw.loader.using(['jquery'], function () {
$(document).ready(function () {
/*$('.smw-column-header').each(function () {
// aktuellen HTML-Inhalt holen
var html = $(this).html();
// "Fortsetzung" entfernen, Leerzeichen ggf. bereinigen
var newHtml = html.replace(/Fortsetzung/g, '').trim();
// falls nach dem Entfernen gar kein Text übrig ist, komplette Header-Box ausblenden:
if (newHtml === '') {
$(this).hide();
} else {
// ansonsten nur den Text überschreiben, sodass z. B. "B Fortsetzung" → "B" wird
$(this).html(newHtml);
}
});*/
$(function () {
$('<style>')
.prop('type', 'text/css')
.html(
'.breadcrumb-item { font-size: 17px !important; }' +
'.breadcrumb-nav { border-bottom: 2px solid #85bc20!important; margin-bottom: 20px !important; }'
)
.appendTo('head');
});
});
});
// ===== robuster Namespace-Header mit optionalem _intern-Zusatzlink =====
(function (mw, $) {
'use strict';
// Hilfsfunktion: Header-Element zuverlässig finden (versch. Selektoren)
function findSubpageHeaderRoot(scope) {
const root = scope || document;
return (
root.getElementById('subpage-tree-pnl-head') ||
root.querySelector('#subpage-tree-pnl .card-header, #subpage-tree-pnl-head, .subpage-tree-pnl .card-header')
);
}
// Baut Header + (optional) Zusatzlink
function buildHeaderContent($header) {
const header = $header[0];
if (!header) return;
const namespace = mw.config.get('wgCanonicalNamespace'); // z.B. "Verein_intern" oder "" im Haupt-Namensraum
const nsName = namespace || 'Hauptseite';
// Hauptlink zur Namespace-Hauptseite
const mainHref = namespace ? `/wiki/${namespace}:Hauptseite` : `/wiki/Hauptseite`;
// Setze Hauptlink (einmalig)
// Wir nutzen einen Wrapper, damit spätere Re-Renders einfacher erkennbar sind.
if (!header.querySelector('.ns-head-mainlink')) {
header.innerHTML = `
<div class="ns-head-mainlink">
<a href="${mainHref}" style="color:inherit;text-decoration:none;">${nsName}</a>
</div>
`;
} else {
// Falls BlueSpice den Inhalt überschrieben hat, aktualisieren wir nur den Link/Label
const mainA = header.querySelector('.ns-head-mainlink a');
if (mainA) {
mainA.href = mainHref;
mainA.textContent = nsName;
}
}
// Hover-Effekt für Hauptlink
const mainA = header.querySelector('.ns-head-mainlink a');
if (mainA && !mainA.__hoverBound) {
mainA.addEventListener('mouseenter', function(){ this.style.textDecoration = 'underline'; });
mainA.addEventListener('mouseleave', function(){ this.style.textDecoration = 'none'; });
mainA.__hoverBound = true;
}
// Zusatzlink nur bei *_intern
const hasIntern = !!(namespace && /_intern$/.test(namespace));
const existingAlt = header.querySelector('#subpage-tree-pnl-head-altlink');
if (!hasIntern) {
// Falls kein _intern → ggf. alten Zusatzlink entfernen
if (existingAlt) existingAlt.remove();
return;
}
// Basis-Namespace ohne _intern
const baseNs = namespace.replace(/_intern$/, '');
const baseHref = `/wiki/${baseNs}:Hauptseite`;
// Zusatzlink erstellen/aktualisieren
if (!existingAlt) {
const alt = document.createElement('div');
alt.id = 'subpage-tree-pnl-head-altlink';
alt.style.marginTop = '4px';
alt.style.fontSize = '90%';
alt.innerHTML = `
<a href="${baseHref}"
title="Zur Hauptseite des Namensraums ohne „_intern“"
style="color:inherit;text-decoration:none;">
${baseNs}
</a>
`;
header.appendChild(alt);
const altA = alt.querySelector('a');
if (altA) {
altA.addEventListener('mouseenter', function(){ this.style.textDecoration = 'underline'; });
altA.addEventListener('mouseleave', function(){ this.style.textDecoration = 'none'; });
}
} else {
const altA = existingAlt.querySelector('a');
if (altA) {
altA.href = baseHref;
altA.textContent = baseNs;
}
}
}
// Kernfunktion: versucht wiederholt, den Header zu setzen
function updateSubpageHeaderRobust(scope) {
const headerEl = findSubpageHeaderRoot(scope);
if (!headerEl) return false;
buildHeaderContent($(headerEl));
return true;
}
// Retry-Loop nach Page-Load (falls Panel asynchron kommt)
$(function () {
let tries = 0, max = 20;
const iv = setInterval(function () {
if (updateSubpageHeaderRobust(document) || ++tries >= max) {
clearInterval(iv);
}
}, 250);
});
// Bei Ajax-Updates erneut versuchen
$(document).ajaxComplete(function () {
// kleiner Delay, falls DOM gerade ersetzt wurde
setTimeout(function(){ updateSubpageHeaderRobust(document); }, 120);
});
// Hook für nachgeladenen Inhalt
mw.hook('wikipage.content').add(function ($c) {
setTimeout(function(){ updateSubpageHeaderRobust($c[0]); }, 120);
});
// MutationObserver: wenn BlueSpice den Header-Inhalt ersetzt, setzen wir ihn wieder
(function observePanel() {
const panel = document.getElementById('subpage-tree-pnl') || document.querySelector('#subpage-tree-pnl, .subpage-tree-pnl');
if (!panel) return;
const mo = new MutationObserver(function () {
updateSubpageHeaderRobust(panel);
});
mo.observe(panel, { childList: true, subtree: true });
})();
})(mediaWiki, jQuery);