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

мНет описания правки
мНет описания правки
Строка 453: Строка 453:
         var levelStack = []; // Стек для отслеживания уровней заголовков
         var levelStack = []; // Стек для отслеживания уровней заголовков
         var maxLevel = 7; // Изначально максимальный уровень не определён
         var maxLevel = 7; // Изначально максимальный уровень не определён
         var skipTOC = false; // Флаг для пропуска заголовков ниже кастомных
         var skipTOC = false; // Флаг для пропуска добавления заголовков


         // Первый проход для нахождения минимального уровня заголовков
         // Первый проход для нахождения минимального уровня заголовков
Строка 461: Строка 461:
             if ($heading.hasClass('custom-heading')) {
             if ($heading.hasClass('custom-heading')) {
                 level = 1; // Для кастомных заголовков
                 level = 1; // Для кастомных заголовков
                skipTOC = true; // Устанавливаем флаг, чтобы пропустить заголовки ниже
             } else {
             } else {
                 var tagName = $heading.prop('tagName').toLowerCase();
                 var tagName = $heading.prop('tagName').toLowerCase();
                 level = parseInt(tagName.charAt(1), 10); // Определяем уровень h1-h6
                 level = parseInt(tagName.charAt(1), 10); // Определяем уровень h1-h6
                if (skipTOC) {
                    return; // Если установлен флаг, пропускаем заголовки
                }
             }
             }
             if (level < maxLevel) {
             if (level < maxLevel) {
Строка 509: Строка 505:
                 var customId = $heading.attr('id') || 'custom-heading-' + getSectionNumber();
                 var customId = $heading.attr('id') || 'custom-heading-' + getSectionNumber();
                 $heading.attr('id', customId);
                 $heading.attr('id', customId);
                 return; // Пропускаем добавление в TOC
                 skipTOC = true; // Устанавливаем флаг пропуска TOC после кастомного заголовка
             } else if ($headlineSpan.length > 0) {
             } else if ($headlineSpan.length > 0) {
                if (skipTOC) {
                    return; // Пропускаем заголовки ниже кастомного заголовка
                }
                 var tagName = $heading.prop('tagName').toLowerCase();
                 var tagName = $heading.prop('tagName').toLowerCase();
                 level = parseInt(tagName.charAt(1), 10);
                 level = parseInt(tagName.charAt(1), 10);
Строка 521: Строка 520:
             } else {
             } else {
                 return; // Пропускаем элементы без заголовков
                 return; // Пропускаем элементы без заголовков
            }
            // Если установлен флаг пропуска, игнорируем заголовки ниже кастомных
            if (skipTOC) {
                return; // Пропускаем заголовки ниже кастомных
             }
             }