MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 453: | Строка 453: | ||
var lastLevel = 1; // Уровень предыдущего заголовка | var lastLevel = 1; // Уровень предыдущего заголовка | ||
var $currentList = $toc; // Текущий список для вложенности | var $currentList = $toc; // Текущий список для вложенности | ||
var currentLevel = 1; | |||
// Функция для обновления счётчиков для текущего уровня | // Функция для обновления счётчиков для текущего уровня | ||
| Строка 484: | Строка 485: | ||
var level = isCustomHeading ? 1 : parseInt(tagName.charAt(1), 10); // Определяем уровень заголовка | var level = isCustomHeading ? 1 : parseInt(tagName.charAt(1), 10); // Определяем уровень заголовка | ||
// Обрабатываем только заголовки с текстом | |||
var headingText = $heading.text().trim(); | |||
if (headingText.length === 0) return; | |||
updateCounters(level); // Обновляем счётчики для текущего уровня | updateCounters(level); // Обновляем счётчики для текущего уровня | ||
| Строка 493: | Строка 494: | ||
$heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | ||
// | // Если уровень заголовка ниже текущего, возвращаемся на уровень выше | ||
while (tocCounters.length > level) { | |||
$currentList = $currentList.parent(); // Переходим к родительскому <ul> | |||
} | |||
// Если уровень заголовка выше, создаём вложенный список <ul> | |||
if (level > lastLevel) { | |||
$currentList = createNestedList($currentList); // Создаём новый вложенный список | |||
} | |||
// Создаём элемент списка в оглавлении (TOC) | |||
var tocItem = $('<li>') | |||
.addClass('toclevel-' + (level - 1)) | |||
.append( | |||
$('<a>').attr('href', '#' + sectionId).append( | |||
$('<span>').addClass('tocnumber').text(getSectionNumber()), | |||
$('<span>').addClass('toctext').text(headingText) | |||
) | |||
); | |||
// Добавляем элемент в текущий список | |||
$currentList.append(tocItem); | |||
}); | }); | ||
}); | }); | ||