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

м Функции для добавления кастомных заголовков в TOC и кнопки "править"
Нет описания правки
Строка 449: Строка 449:
         if ($toc.length === 0) {
         if ($toc.length === 0) {
             return; // Если оглавление отсутствует, выходим
             return; // Если оглавление отсутствует, выходим
        }
        var headingCount = 0; // Счётчик заголовков
        var currentNumbering = [0]; // Массив для отслеживания нумерации
        // Функция для обновления текущей нумерации
        function updateNumbering(level) {
            while (currentNumbering.length <= level) {
                currentNumbering.push(0);
            }
            currentNumbering[level]++;
            for (var i = level + 1; i < currentNumbering.length; i++) {
                currentNumbering[i] = 0;
            }
            return currentNumbering.slice(1, level + 1).join('.');
         }
         }


         $content.find('.custom-heading').each(function(index) {
         $content.find('.custom-heading').each(function(index) {
             var sectionId = $(this).attr('id') || 'custom-heading-' + (index + 1);
            headingCount++;
             var sectionId = $(this).attr('id') || 'custom-heading-' + headingCount;
             $(this).attr('id', sectionId); // Присваиваем уникальный id заголовку
             $(this).attr('id', sectionId); // Присваиваем уникальный id заголовку
            // Определяем уровень заголовка
            var headingLevel = $(this).data('level') || 2;
            var numbering = updateNumbering(headingLevel); // Получаем правильный номер


             // Создаем ссылку "править"
             // Создаем ссылку "править"
Строка 460: Строка 480:
                 $('<a>').attr('href', editUrl).text('править')
                 $('<a>').attr('href', editUrl).text('править')
             );
             );
             $(this).append(editLink); // Добавляем ссылку "править" к заголовку
             $(this).prepend(numbering + ' ').append(editLink); // Добавляем нумерацию и ссылку "править"


             // Добавляем заголовок в оглавление (TOC)
             // Добавляем заголовок в оглавление (TOC)
             var headingText = $(this).text();
             var headingText = $(this).clone().children().remove().end().text(); // Получаем текст без ссылки "править"
             var tocItem = $('<li>').append(
             var tocItem = $('<li>').append(
                 $('<a>').attr('href', '#' + sectionId).text(headingText)
                 $('<a>').attr('href', '#' + sectionId).text(numbering + ' ' + headingText)
             );
             );
             $toc.append(tocItem); // Добавляем элемент в оглавление
             $toc.append(tocItem); // Добавляем элемент в оглавление