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

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
 
(не показано 167 промежуточных версий этого же участника)
Строка 1: Строка 1:
document.addEventListener("DOMContentLoaded", function () {
(function(){
    if (mw.config.get("wgPageName") !== "Тест") return;
if(typeof mw==='undefined') return;


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


    var links = [
function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}
        ["Как выжить.png", "Руководство для новичков", "Новичкам"],
        ["Правила.png", "Правила Сервера", "Правила"],
        ["Вещмешок клоуна.png", "Контрабанда", "Контрабанда"],
        ["Таблица навыков.png", "Таблица навыков", "Таблица навыков"],
        ["Синий адвокатский костюм.png", "Корпоративный Закон", "Корпоративный Закон"],
        ["Консоль связи.gif", "Стандартные Рабочие Процедуры", "Стандартные Рабочие Процедуры"],
        ["Бумажная работа.png", "Бумажная работа", "Бумажная работа"],
        ["Роли main.gif", "Роли", "Роли"],
        ["Лор.png", "Лор", "Лор"]
    ];


    var container = document.createElement("div");
function walk(node){
    container.className = "wiki-nav";
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);
}
}
}


    for (var i = 0; i < links.length; i++) {
var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
        var a = document.createElement("a");
for(var i=0;i<nodes.length;i++){
        a.href = "/wiki/" + encodeURIComponent(links[i][1]);
var cn=nodes[i].childNodes;
        a.className = "wiki-nav-btn";
for(var j=0;j<cn.length;j++) walk(cn[j]);
 
}
        var span = document.createElement("span");
})();
        span.textContent = links[i][2];
 
        var img = document.createElement("img");
        img.src = "/wiki/File:" + links[i][0];
        img.alt = links[i][2];
 
        a.appendChild(span);
        a.appendChild(img);
        container.appendChild(a);
    }
 
    target.insertBefore(container, target.firstChild);
});

Текущая версия от 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]);
}
})();