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
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
document.addEventListener("DOMContentLoaded", function () {
mw.loader.using(['mediawiki.util']).then(function () {
    const container = document.querySelector("#ns-tree");
    if (!container) return;


     const links = container.querySelectorAll("li a");
     function applyFormatting() {
        const container = document.querySelector("#ns-tree");
        if (!container) return;


    links.forEach(link => {
         const items = container.querySelectorAll("li");
        const title = link.textContent;
         const depth = (title.match(/\//g) || []).length;


         link.parentElement.style.marginLeft = (depth * 20) + "px";
         // If nothing found, try again
        if (items.length === 0) {
            setTimeout(applyFormatting, 300);
            return;
        }
 
        items.forEach(function (li) {
            const link = li.querySelector("a");
            if (!link) return;
 
            const full = link.textContent;
 
            // Remove namespace
            let clean = full.replace(/^Drupal:/, "");
 
            // Count depth
            const depth = (clean.match(/\//g) || []).length;
 
            // Get last part
            const label = clean.split("/").pop();
 
            // Apply label
            link.textContent = label;
 
            // Apply indentation
            li.style.marginLeft = (depth * 20) + "px";
 
            // Style top level
            if (depth === 0) {
                link.style.fontWeight = "bold";
                li.style.marginTop = "8px";
            }
        });
    }
 
    // Start after page load
    $(applyFormatting);
 
});
 
$(function() {
    mw.hook('wikipage.content').add(function() {
        var pageId = mw.config.get('wgArticleId');
       
        // Safety check to avoid double-rendering or processing empty IDs
        if (!pageId || pageId <= 0 || $('#mw-print-pageid').length > 0) {
            return;
        }
 
        // 1. Live Webpage Version (appends to "Last edited on...")
        var $lastMod = $('#footer-info-lastmod');
        if ($lastMod.length) {
            var $screenId = $('<span>')
                .attr('id', 'mw-print-pageid')
                .text(' (Page ID: ' + pageId + ')');
            $lastMod.append($screenId);
        }
 
        // 2. Physical Printing Version (Bypasses hidden elements by appending directly to content block)
        var $contentBlock = $('#mw-content-text');
        if ($contentBlock.length) {
            var $printId = $('<div>')
                .addClass('mw-print-only-pageid')
                .text('Page ID: ' + pageId);
            $contentBlock.append($printId);
        }
     });
     });
});
});

Latest revision as of 13:46, 10 August 2026

/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.using(['mediawiki.util']).then(function () {

    function applyFormatting() {
        const container = document.querySelector("#ns-tree");
        if (!container) return;

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

        // If nothing found, try again
        if (items.length === 0) {
            setTimeout(applyFormatting, 300);
            return;
        }

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

            const full = link.textContent;

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

            // Count depth
            const depth = (clean.match(/\//g) || []).length;

            // Get last part
            const label = clean.split("/").pop();

            // Apply label
            link.textContent = label;

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

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

    // Start after page load
    $(applyFormatting);

});

$(function() {
    mw.hook('wikipage.content').add(function() {
        var pageId = mw.config.get('wgArticleId');
        
        // Safety check to avoid double-rendering or processing empty IDs
        if (!pageId || pageId <= 0 || $('#mw-print-pageid').length > 0) {
            return;
        }

        // 1. Live Webpage Version (appends to "Last edited on...")
        var $lastMod = $('#footer-info-lastmod');
        if ($lastMod.length) {
            var $screenId = $('<span>')
                .attr('id', 'mw-print-pageid')
                .text(' (Page ID: ' + pageId + ')');
            $lastMod.append($screenId);
        }

        // 2. Physical Printing Version (Bypasses hidden elements by appending directly to content block)
        var $contentBlock = $('#mw-content-text');
        if ($contentBlock.length) {
            var $printId = $('<div>')
                .addClass('mw-print-only-pageid')
                .text('Page ID: ' + pageId);
            $contentBlock.append($printId);
        }
    });
});