MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 33: | Line 33: | ||
}); | }); | ||
mw.hook('wikipage.content').add(function($content) { | mw.hook('wikipage.content').add(function($content) { | ||
var term = /\b(BnB|BNB)\b/g; | var term = /\b(BnB|BNB)s?\b/g; | ||
var url = 'https://glossary.infil.net/?t=Bread%20and%20Butter'; | var url = 'https://glossary.infil.net/?t=Bread%20and%20Butter'; | ||
$content. | var walker = document.createTreeWalker( | ||
$content.get(0), | |||
NodeFilter.SHOW_TEXT, | |||
{ | |||
acceptNode: function(node) { | |||
var parent = node.parentElement; | |||
if (!parent) return NodeFilter.FILTER_ACCEPT; | |||
if (parent.closest('a, #toc, .toc, .mw-editsection, pre, code')) { | |||
return NodeFilter.FILTER_REJECT; | |||
} | |||
return NodeFilter.FILTER_ACCEPT; | |||
} | |||
}, | |||
false | |||
); | |||
var nodesToReplace = []; | |||
while (walker.nextNode()) { | |||
term.lastIndex = 0; | |||
if (term.test(walker.currentNode.nodeValue)) { | |||
nodesToReplace.push(walker.currentNode); | |||
} | } | ||
} | |||
nodesToReplace.forEach(function(node) { | |||
var newHtml = node.nodeValue.replace(term, '<a href="' + url + '" class="external text" target="_blank" rel="noreferrer noopener">$&</a>'); | |||
$(node).replaceWith(newHtml); | |||
}); | }); | ||
}); | }); | ||
Revision as of 19:44, 11 May 2026
/*PLEASE DON'T MESS WITH*/
$(function() {
var homeTab = document.querySelector('#ca-talk a');
if (homeTab) {
homeTab.setAttribute('href', 'https://wiki.jcraft-eoe.com/index.php?title=Main_Page');
// Ensure the link is physically clickable
homeTab.style.pointerEvents = 'auto';
homeTab.style.display = 'inline-block';
}
});
mw.hook('wikipage.content').add(function($content) {
$content.find('#toc li').has('ul').each(function() {
var $li = $(this);
if ($li.children('.fandom-toc-toggle').length === 0) {
// Insert a purple clickable arrow before the link
$li.prepend('<span class="fandom-toc-toggle" style="cursor:pointer; display:inline-block; width: 16px; text-align:center; color:#a862ea; margin-right:4px; font-size:10px; transition: transform 0.2s;">▼</span>');
}
});
$content.find('.fandom-toc-toggle').off('click').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
var $toggle = $(this);
var $sublist = $toggle.siblings('ul');
$sublist.slideToggle(200, function() {
if ($sublist.is(':visible')) {
$toggle.css('transform', 'rotate(0deg)');
} else {
$toggle.css('transform', 'rotate(-90deg)');
}
});
});
});
mw.hook('wikipage.content').add(function($content) {
var term = /\b(BnB|BNB)s?\b/g;
var url = 'https://glossary.infil.net/?t=Bread%20and%20Butter';
var walker = document.createTreeWalker(
$content.get(0),
NodeFilter.SHOW_TEXT,
{
acceptNode: function(node) {
var parent = node.parentElement;
if (!parent) return NodeFilter.FILTER_ACCEPT;
if (parent.closest('a, #toc, .toc, .mw-editsection, pre, code')) {
return NodeFilter.FILTER_REJECT;
}
return NodeFilter.FILTER_ACCEPT;
}
},
false
);
var nodesToReplace = [];
while (walker.nextNode()) {
term.lastIndex = 0;
if (term.test(walker.currentNode.nodeValue)) {
nodesToReplace.push(walker.currentNode);
}
}
nodesToReplace.forEach(function(node) {
var newHtml = node.nodeValue.replace(term, '<a href="' + url + '" class="external text" target="_blank" rel="noreferrer noopener">$&</a>');
$(node).replaceWith(newHtml);
});
});