MediaWiki:Gadget-fondo-color.js

/* * Colores de acuerdo a espacio de nombres */

// dos funciones útiles... function wpes_test (uno, otro) { switch (typeof uno) { case "object": return uno.test(otro); case "function": return uno(otro); default: return uno === otro; } }

function wpes_isInArray (ele, arr) { var i;   switch (typeof ele) { case "object": for (i=0; i<arr.length; i++) if (ele.test(arr[i])) return true; break; case "function": for (i=0; i<arr.length; i++) if (ele(arr[i])) return true; break; default: for (i=0; i<arr.length; i++) if (ele === arr[i]) return true; }   return false; }

if ( window.colorines === undefined ) {

var colorines = { desactivarColores: false, /* Regexps y strings se testean contra c/u de las clases del. Las funciones reciben como parámetro un array con esas clases. */       filtros: [ "enciclopedia", [ "ns-0", "page-Wikipedia_Portada" ],                  "wikipedia", [ "page-Wikipedia_Consultas_de_borrado_mediante_argumentación" ],                  "discusión", [ "ns-talk", /^page-Wikipedia_(?:Café|Tablón)_.*_Actual$/, "page-Wikipedia_Café_todos", /^page-Wikipedia_Consultas_de_borrado_/, "page-Wikipedia_Consultas" ],                  "archivo", [ /^page-Wikipedia_(?:Café|Tablón_.+)_Archivo/, /^page-Wikipedia_Consultas_semana/ ],                  "wikipedia", [ "ns-4",   // Wikipedia: "ns-8",  // MediaWiki: "ns-12", // Ayuda: "ns-102" // Wikiproyecto: ]                ],

test: function (ele, arr) { if (typeof ele === "function") return ele(arr); return wpes_isInArray(ele, arr); },

determinaColorPágina: function { var clasesBody = $('body').attr('class').split(/ +/); for (var i=0; i < this.filtros.length; i += 2) { var tipoColor = this.filtros[i]; var tests = this.filtros[i+1]; for (var j=0; j < tests.length; j++) { if (this.test(tests[j], clasesBody)) return "color-" + tipoColor; }           }            return null; }   };    window.colorines = colorines;

(function ( $, mw ) {       'use strict';

if (!colorines.desactivarColores) { var claseColor = colorines.determinaColorPágina; if (claseColor) $('body').addClass(claseColor); }   })( jQuery, mediaWiki ); }