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

Страница интерфейса MediaWiki
Нет описания правки
Метка: отменено
Нет описания правки
 
(не показаны 32 промежуточные версии этого же участника)
Строка 1: Строка 1:
(function() {
(function(){
    var races = [
if(typeof mw==='undefined') return;
        {name: 'Человек', img: 'Человек.png', link: 'Человек'},
        {name: 'Унатх', img: 'Унатх.png', link: 'Унатх'},
        {name: 'Дворф', img: 'Дворф.png', link: 'Дворф'},
        {name: 'Диона', img: 'Диона.png', link: 'Диона'},
        {name: 'Кидан', img: 'Кидан.png', link: 'Кидан'},
        {name: 'Фелинид', img: 'Фелинид.png', link: 'Фелинид'},
        {name: 'Родентия', img: 'Родения.png', link: 'Родентия'},
        {name: 'Авали', img: 'Авали.png', link: 'Авали'},
        {name: 'Вульпканин', img: 'Вульпанит.png', link: 'Вульпканин'},
        {name: 'Арахнид', img: 'Арахнид.png', link: 'Арахнид'},
        {name: 'Слаймолюд', img: 'Слаймолюд.png', link: 'Слаймолюд'},
        {name: 'Ниан', img: 'Ниан.png', link: 'Ниан'},
        {name: 'Вокс', img: 'Вокс.png', link: 'Вокс'}
    ];


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


    var container = document.createElement('div');
function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}
    container.className = 'race-carousel';


    // Центральная карточка с стрелками
function walk(node){
    var main = document.createElement('div');
if(node.nodeType===3){
    main.className = 'race-main';
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 leftArrow = document.createElement('span');
var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
    leftArrow.className = 'arrow';
for(var i=0;i<nodes.length;i++){
    leftArrow.innerHTML = '&#9664;';
var cn=nodes[i].childNodes;
    main.appendChild(leftArrow);
for(var j=0;j<cn.length;j++) walk(cn[j]);
 
}
    var largeCard = document.createElement('div');
})();
    largeCard.className = 'race-card-large';
    main.appendChild(largeCard);
 
    var rightArrow = document.createElement('span');
    rightArrow.className = 'arrow';
    rightArrow.innerHTML = '&#9654;';
    main.appendChild(rightArrow);
 
    container.appendChild(main);
 
    // Мини-карточки
    var miniContainer = document.createElement('div');
    miniContainer.className = 'race-mini-container';
 
    for (var i = 0; i < races.length; i++) {
        (function(index) {
            var mini = document.createElement('div');
            mini.className = 'race-mini';
            mini.innerHTML =
              '<a href="/wiki/' + races[index].link + '"><img src="/images/' + races[index].img + '" alt="' + races[index].name + '"></a>';
            mini.onclick = function() {
                currentIndex = index;
                updateDisplay();
            };
            miniContainer.appendChild(mini);
        })(i);
    }
 
    container.appendChild(miniContainer);
 
    // Информация о расе
    var infoDiv = document.createElement('div');
    infoDiv.className = 'race-info';
    container.appendChild(infoDiv);
 
    var target = document.querySelector('.race-display');
    if (!target) target = document.body;
    target.appendChild(container);
 
    function updateDisplay() {
        var race = races[currentIndex];
        largeCard.innerHTML =
          '<a href="/wiki/' + race.link + '"><img src="/images/' + race.img + '" alt

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