Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Citizen.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 18: Line 18:


       if (content && content.classList.contains('citizen-section')) {
       if (content && content.classList.contains('citizen-section')) {
         content.hidden = 'until-found'; // collapse
         content.hidden = 'until-found'; // Collapse by default
       }
       }
     });
     });
Line 32: Line 32:
     const content = sectionHeading.nextElementSibling;
     const content = sectionHeading.nextElementSibling;
     if (content && content.classList.contains('citizen-section') && content.hidden) {
     if (content && content.classList.contains('citizen-section') && content.hidden) {
       content.hidden = false; // Expand the hidden section
       content.hidden = false; // Expand hidden section
     }
     }
   }
   }
}
}


// === Handle direct URL loads with a hash (page load) ===
// === Handle direct URL loads with a hash (on page load) ===
mw.hook('wikipage.content').add(function() {
mw.hook('wikipage.content').add(function() {
   if (window.innerWidth >= 768) {
   if (window.innerWidth >= 768) {
     const hash = window.location.hash;
     const hash = window.location.hash;
     if (hash && hash.length > 1) {
     if (hash && hash.length > 1) {
       const headingId = hash.substring(1);
       const headingId = decodeURIComponent(hash.substring(1)); // 🔥 decode any special characters
       setTimeout(() => { // 🔥 Wait a little to ensure everything loaded
       setTimeout(() => { // Slight delay to allow DOM ready
         const heading = document.getElementById(headingId);
         const heading = document.getElementById(headingId);
         if (heading) {
         if (heading) {
Line 57: Line 57:
});
});


// === Hook into Citizen TOC clicks (live clicking) ===
// === Hook into Citizen TOC (Contents menu) clicks ===
mw.hook('wikipage.content').add(function() {
mw.hook('wikipage.content').add(function() {
   if (window.innerWidth >= 768) {
   if (window.innerWidth >= 768) {