User:C.Ezra.M/addPrefixesLink.js
From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to navigationJump to search
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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/** * A script that adds a "List of subpages" link to the sidebar. * * You can define these variables: * - prefixesLink.nsSpecialName - localized name for the Special namespace * - prefixesLink.specialPageName - localized name for "PrefixIndex" * - prefixesLink.title = the hover title * - prefixesLink.display = link text * * @name addPrefixesLink * @author Keyacom * @summary A script that adds a "List of subpages" link to the sidebar. */ if (mw.config.get('wgNamespaceNumber') != -1 && mw.config.get('skin') != "minerva") { // Exclude special pages or the Minerva skin if (typeof window.prefixesLink === 'undefined') { window.prefixesLink = {}; } const { config: cfg } = mw; const list = document.querySelector("#p-tb ul"); const li = document.createElement("li"); const link = document.createElement("a"); let href = `${cfg.get('wgArticlePath')}/${cfg.get('wgPageName')}`; if (window.prefixesLink?.nsSpecialName === undefined) { window.prefixesLink.nsSpecialName = "Special"; } href = href.replace("$1", window.prefixesLink.nsSpecialName.trim() + ":$1"); if (window.prefixesLink?.specialPageName === undefined) { window.prefixesLink.specialPageName = "PrefixIndex"; } href = href.replace("$1", window.prefixesLink.specialPageName.trim()); // Assuming leaving defaults (and wgArticlePath with "/wiki/$1"), the href should be "/wiki/Special:PrefixIndex/<pagename>" link.href = href; if (window.prefixesLink?.title === undefined) { window.prefixesLink.title = "See subpages of this page"; } link.title = window.prefixesLink.title.trim(); if (window.prefixesLink?.display === undefined) { window.prefixesLink.display = "List of subpages"; } link.innerHTML = window.prefixesLink.display.trim(); li.appendChild(link); list.appendChild(li); }