MediaWiki:Test.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
 
(не показаны 122 промежуточные версии этого же участника)
Строка 1: Строка 1:
(function() {
(function(){
  var roleStyles = {
if(typeof mw==='undefined') return;
    "command":    { border: "#372686", background: "#241c4a" },
    "legal":      { border: "#6d5d53", background: "#3e3530" },
    "security":    { border: "#ff0000", background: "#7a0000" },
    "prison":      { border: "#002e86", background: "#00173d" },
    "med":        { border: "#275b66", background: "#15343c" },
    "sci":        { border: "#663a9c", background: "#3b2860" },
    "eng":        { border: "#cc9900", background: "#665200" },
    "supply":      { border: "#9c593a", background: "#512d1b" },
    "service":    { border: "#3e8b3e", background: "#2e552e" },
    "antags":      { border: "#5c0000", background: "#500000" },
    "free-antags": { border: "#8b0049", background: "#5d002f" },
    "wildlife":    { border: "#da791e", background: "#b36212" },
    "cc":          { border: "#4b662f", background: "#344f23" },
    "specops":    { border: "#005f2f", background: "#004022" },
    "synthetics":  { border: "#4b0082", background: "#360050" },
    "ghost":      { border: "#5e5e5e", background: "#3a3a3a" }
  };


  for (var role in roleStyles) {
var map={
    if (roleStyles.hasOwnProperty(role)) {
"Клише":"#ff4d4d",
      var el = document.getElementById(role);
"властью":"#4dff4d",
      if (el) {
"ответственность":"#4d4dff",
        var block = el.nextElementSibling;
"Стандартные Рабочие Процедуры":"#ff4dff",
        if (block) {
"ядерный":"#ffa500",
          var style = roleStyles[role];
"станции":"#4dffff",
          block.style.border = "2px solid " + style.border;
"ГСБ":"#b84dff",
          block.style.background = style.background;
"диск":"#4dff88",
          block.classList.add("role-block");
"СРП/КЗ":"#ffb6c1",
        }
"банановая кожурка":"#ffff4d"
      }
};
    }
 
  }
function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}
 
function walk(node){
if(node.nodeType===3){
var t=node.nodeValue, r=t;
for(var k in map){
r=r.replace(new RegExp(esc(k),'g'),'<span style="color:'+map[k]+'">'+k+'</span>');
}
if(r!==t){
var s=document.createElement('span');
s.innerHTML=r;
node.parentNode.replaceChild(s,node);
}
}
}
 
var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
for(var i=0;i<nodes.length;i++){
var cn=nodes[i].childNodes;
for(var j=0;j<cn.length;j++) walk(cn[j]);
}
})();
})();

Текущая версия от 11:16, 17 января 2026

(function(){
if(typeof mw==='undefined') return;

var map={
"Клише":"#ff4d4d",
"властью":"#4dff4d",
"ответственность":"#4d4dff",
"Стандартные Рабочие Процедуры":"#ff4dff",
"ядерный":"#ffa500",
"станции":"#4dffff",
"ГСБ":"#b84dff",
"диск":"#4dff88",
"СРП/КЗ":"#ffb6c1",
"банановая кожурка":"#ffff4d"
};

function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}

function walk(node){
if(node.nodeType===3){
var t=node.nodeValue, r=t;
for(var k in map){
r=r.replace(new RegExp(esc(k),'g'),'<span style="color:'+map[k]+'">'+k+'</span>');
}
if(r!==t){
var s=document.createElement('span');
s.innerHTML=r;
node.parentNode.replaceChild(s,node);
}
}
}

var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
for(var i=0;i<nodes.length;i++){
var cn=nodes[i].childNodes;
for(var j=0;j<cn.length;j++) walk(cn[j]);
}
})();