MediaWiki:Timeless.js
From The HOA
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.loader.using(['mediawiki.api']).then(function () {
var category = "Resources"; // The name of the category
var sidebar = $(".sidebar-chunk"); // Target the sidebar chunk
if (sidebar.length === 0) {
console.error("Sidebar container not found");
return;
}
console.log("Sidebar container found, loading menu...");
// Create a new block for the menu (with a unique ID)
var $menuBlock = $("<div>").addClass("portal").attr("id", "custom-category-menu");
var $heading = $("<h3>").addClass("portal-heading").text("Pages in " + category);
var $list = $("<ul>").addClass("portal-body");
new mw.Api().get({
action: "query",
list: "categorymembers",
cmtitle: "Category:" + category,
cmlimit: 10,
format: "json"
}).done(function (data) {
if (data.query && data.query.categorymembers.length > 0) {
data.query.categorymembers.forEach(function (page) {
$list.append($("<li>").append($("<a>").attr("href", mw.util.getUrl(page.title)).text(page.title)));
});
// Append the heading and list to the new block
$menuBlock.append($heading).append($list);
// Insert the new block as a completely new section in the sidebar
sidebar.last().after($menuBlock); // This places it below the last existing section in the sidebar
console.log("Menu added to sidebar.");
} else {
console.log("No pages found in the category.");
}
}).fail(function () {
console.error("API request failed.");
});
});
