MediaWiki:Gadget-fancy-css-on-cats.js
Ir a la navegación
Ir a la búsqueda
Nota: tras guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.
- Firefox/Safari: Mantén presionada la tecla Mayús mientras pulsas el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presiona Ctrl+Shift+R (⌘+Mayús+R en Mac)
- Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar, o presiona Ctrl+F5
- Opera: dirígete a Menú → Configuración (Opera → Preferencias en Mac) y luego a Privacidad y seguridad → Borrar datos de navegación → Imágenes y archivos en caché.
mw.hook('wikipage.content').add(function hook_handler() { // SEE: [[MediaWiki:Gadget-fancy.css]] for icons and colors // only on categories if (mw.config.get('wgCanonicalNamespace') != 'Category') return // add specials for keepers if (mw.config.get('wgUserGroups').includes('keeper')) { document.body.classList.add('user-is-keeper') } console.warn('gadget:', 'fancy-cats') const query = { prop: "categories", indexpageids: true, cllimit: "max", generator: "categorymembers", gcmtitle: mw.config.get('wgPageName'), gcmlimit: "max", gcmtype: "page", } const api = new mw.Api({ parameters: query, }) // page => [cat,...] const categories = {} function paginate(resp) { resp.query.pageids.forEach(function each_pageid(id) { const page = resp.query.pages[id] if (!categories[page.title]) categories[page.title] = [] if (!page.categories) return page.categories.forEach(function pid_each_cat(row) { const cat = row.title.replace('Category:','') categories[page.title].push(cat) }) }) if (!resp.continue) { return categories } console.debug('continuing:', resp.continue) // TODO: this doesn't work return api.get(resp.continue).then(paginate) } api.get().then(paginate).then(function all_results(all) { console.debug('fancy-cats:', all) const links = document.querySelectorAll('#mw-pages a') console.debug('fancy-links:', links) links.forEach(function each_link(el) { const title = el.getAttribute('title') const li = el.parentElement all[title].forEach(function each_link_cat(cat) { if (mw.config.get('wgTitle') == cat) return const cls = 'fancy-' + cat.toLowerCase().replace(/ /g, '-') li.classList.add(cls) }) }) mw.hook('fancy-cats').fire() }) // end of API query }) // end of MW hook