MediaWiki:Common.js

Страница интерфейса MediaWiki

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */

function insertAfter(newNode, referenceNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

// Код данте ниже
function setupTabs() {
    const tabHeaders = document.querySelectorAll('.tab-header');
    const tabContents = document.querySelectorAll('.tab-content');
    console.log("Количество заголовков вкладок:", tabHeaders.length);
    console.log("Количество содержимого вкладок:", tabContents.length);
    tabHeaders.forEach(function(header, index) {
        header.addEventListener('click', function() {
            console.log("Клик по вкладке:", index);
            tabHeaders.forEach(function(h) {
                h.classList.remove('active');
            });
            tabContents.forEach(function(c) {
                c.classList.remove('active');
            });
            header.classList.add('active');
            tabContents[index].classList.add('active');
        });
    });
}
mw.hook('wikipage.content').add(setupTabs);
// выше, ниже мой недо скрип

// Конец данте

function addCopyButtons() {
    var codeBlocks = document.querySelectorAll('code:not(.copy-processed)');

    codeBlocks.forEach(function(block) {
        var copyButton = document.createElement('button');
        copyButton.textContent = 'Copy';
        copyButton.className = 'copy-button';

        copyButton.addEventListener('click', function() {
            var textArea = document.createElement('textarea');
            textArea.value = block.textContent;
            document.body.appendChild(textArea);
            textArea.select();
            document.execCommand('copy');
            document.body.removeChild(textArea);
            alert('Содержимое скопировано!');
        });

        insertAfter(copyButton, block);
        block.classList.add('copy-processed');
    });
}

// Функция для форматирования содержимого блоков <code>
function formatCodeBlocks() {
    var codeBlocks = document.querySelectorAll('code:not(.formatted)');

    codeBlocks.forEach(function(block) {
        // Заменяем пробелы на неразрывные пробелы и вставляем <br> для переносов строк
        block.innerHTML = block.textContent.replace(/ /g, '\u00A0').replace(/\n/g, '<br>');
        block.classList.add('formatted');
    });
}

function formatNullDocsAbout() {
    $('.docs-about').each(function() {
        if ($(this).html().includes("{{{Примечание документа}}}")) {
            $(this).hide();
        }
    });
}

// Вызываем функции после загрузки страницы
mw.hook('wikipage.content').add(formatCodeBlocks);
mw.hook('wikipage.content').add(addCopyButtons);
mw.hook('wikipage.content').add(formatNullDocsAbout);