Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zeile 70: | Zeile 70: | ||
} | } | ||
})(); | })(); | ||
/* Statisches Menü am Ende von | /* Statisches Menü am Ende von #sb-pri-cnt – nur auf der Startseite */ | ||
(function (mw, $) { | (function (mw, $) { | ||
'use strict'; | 'use strict'; | ||
function isMainView() { | |||
function | return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view'; | ||
} | |||
function injectHomeMenu($root) { | |||
if (!isMainView()) return; | |||
if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden | if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden | ||
var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last(); | |||
var $container = ($ | |||
if (!$container.length) return; | if (!$container.length) return; | ||
Zeile 94: | Zeile 96: | ||
'</nav>'; | '</nav>'; | ||
$container.append(menuHtml); | $container.append(menuHtml); | ||
} | } | ||
// Beim | // 1) Beim DOM-ready | ||
$(function(){ injectHomeMenu(); }); | $(function () { injectHomeMenu(); }); | ||
// | // 2) Wenn MW Inhalte nachlädt/umschaltet (Tabs, Ajax, Discovery) | ||
mw.hook('wikipage.content').add(function ($content) { | mw.hook('wikipage.content').add(function ($content) { | ||
injectHomeMenu($content); | injectHomeMenu($content); | ||
}); | }); | ||
// 3) Fallback: warten, falls #sb-pri-cnt spät ins DOM kommt | |||
var tried = 0, maxTries = 10; | |||
var interval = setInterval(function(){ | |||
if (document.getElementById('sb-pri-cnt') || ++tried >= maxTries) { | |||
clearInterval(interval); | |||
injectHomeMenu(); | |||
} | |||
}, 300); | |||
})(mediaWiki, jQuery); | })(mediaWiki, jQuery); |
Version vom 3. September 2025, 20:02 Uhr
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');
});
});
});
$(function(){
// In allen Category-Ausgaben: jede LI, die einen <a class="new"> enthält, entfernen
$('.smw-columnlist-container a.new').each(function(){
$(this).closest('li').remove();
});
});
$(function(){
// 1. Rote Links raus (wie gehabt)
$('.smw-columnlist-container a.new').each(function(){
$(this).closest('li').remove();
});
// 2. Jetzt jede Buchstaben-Überschrift entfernen, deren Liste leer ist
$('.smw-column-header').each(function(){
var $header = $(this),
$ul = $header.next('ul');
if ($ul.length && $ul.children('li').length === 0) {
$ul.remove();
$header.remove();
}
});
});
// attachments immer in neuem Tab öffnen
(function () {
// Hilfs-Funktion, die alle neuen Attachment-Links anpasst
function updateAttachmentLinks() {
// Alle Download-Links in der Datei-Liste
$('.attachments-filelist a.oojsplus-data-gridWidget-url-button')
.attr('target','_blank')
.attr('rel','noopener noreferrer');
}
// beim Seiten-Load einmal ausführen
$(updateAttachmentLinks);
// und mit MutationObserver auf nachträglich geladene Links achten
var container = document.querySelector('.attachments-filelist');
if (container) {
new MutationObserver(function (mutations) {
updateAttachmentLinks();
}).observe(container, { childList: true, subtree: true });
}
})();
/* Statisches Menü am Ende von #sb-pri-cnt – nur auf der Startseite */
(function (mw, $) {
'use strict';
function isMainView() {
return mw.config.get('wgIsMainPage') && mw.config.get('wgAction') === 'view';
}
function injectHomeMenu($root) {
if (!isMainView()) return;
if (document.getElementById('home-static-menu')) return; // Duplikate vermeiden
var $container = ($root || $(document)).find('#sb-pri-cnt:visible').last();
if (!$container.length) return;
var menuHtml =
'<nav id="home-static-menu" class="home-static-menu" aria-label="Startseiten-Menü">' +
'<h3 class="home-static-menu__title">Schnellzugriff</h3>' +
'<ul class="home-static-menu__list">' +
'<li><a href="/wiki/Einführung">Einführung</a></li>' +
'<li><a href="/wiki/Richtlinien">Richtlinien</a></li>' +
'<li><a href="/wiki/Team">Team</a></li>' +
'<li><a href="/wiki/FAQ">FAQ</a></li>' +
'</ul>' +
'</nav>';
$container.append(menuHtml);
}
// 1) Beim DOM-ready
$(function () { injectHomeMenu(); });
// 2) Wenn MW Inhalte nachlädt/umschaltet (Tabs, Ajax, Discovery)
mw.hook('wikipage.content').add(function ($content) {
injectHomeMenu($content);
});
// 3) Fallback: warten, falls #sb-pri-cnt spät ins DOM kommt
var tried = 0, maxTries = 10;
var interval = setInterval(function(){
if (document.getElementById('sb-pri-cnt') || ++tried >= maxTries) {
clearInterval(interval);
injectHomeMenu();
}
}, 300);
})(mediaWiki, jQuery);