Jump to content

MediaWiki:Common.js: Difference between revisions

From Costa Sano KB
Created page with "Any JavaScript here will be loaded for all users on every page load.: document.addEventListener("DOMContentLoaded", function () { const container = document.querySelector("#ns-tree"); if (!container) return; const links = container.querySelectorAll("li a"); links.forEach(link => { const title = link.textContent; const depth = (title.match(/\//g) || []).length; link.parentElement.style.marginLeft = (depth * 20) + "px"; }..."
 
No edit summary
Line 4: Line 4:
     if (!container) return;
     if (!container) return;


     const links = container.querySelectorAll("li a");
     const items = container.querySelectorAll("li");


     links.forEach(link => {
     items.forEach(li => {
         const title = link.textContent;
         const link = li.querySelector("a");
         const depth = (title.match(/\//g) || []).length;
         if (!link) return;


         link.parentElement.style.marginLeft = (depth * 20) + "px";
         const full = link.textContent;
 
        // Remove namespace
        let clean = full.replace(/^Drupal:/, "");
 
        // Depth (based on "/")
        const depth = (clean.match(/\//g) || []).length;
 
        // Last part only
        const parts = clean.split("/");
        const label = parts[parts.length - 1];
 
        // Apply label
        link.textContent = label;
 
        // Indentation
        li.style.marginLeft = (depth * 20) + "px";
 
        // Highlight top-level
        if (depth === 0) {
            link.style.fontWeight = "bold";
            li.style.marginTop = "8px";
        }
     });
     });
});
});

Revision as of 13:29, 12 April 2026

/* Any JavaScript here will be loaded for all users on every page load. */
document.addEventListener("DOMContentLoaded", function () {
    const container = document.querySelector("#ns-tree");
    if (!container) return;

    const items = container.querySelectorAll("li");

    items.forEach(li => {
        const link = li.querySelector("a");
        if (!link) return;

        const full = link.textContent;

        // Remove namespace
        let clean = full.replace(/^Drupal:/, "");

        // Depth (based on "/")
        const depth = (clean.match(/\//g) || []).length;

        // Last part only
        const parts = clean.split("/");
        const label = parts[parts.length - 1];

        // Apply label
        link.textContent = label;

        // Indentation
        li.style.marginLeft = (depth * 20) + "px";

        // Highlight top-level
        if (depth === 0) {
            link.style.fontWeight = "bold";
            li.style.marginTop = "8px";
        }
    });
});