MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 449: | Строка 449: | ||
$toc.empty(); | $toc.empty(); | ||
var $headings = $content.find('.custom-heading'); // | var $headings = $content.find('.custom-heading'); // Ищем все элементы с классом .custom-heading | ||
var tocCounters = [0]; // Счётчики для уровней заголовков, начиная с 1-го уровня | var tocCounters = [0]; // Счётчики для уровней заголовков, начиная с 1-го уровня | ||
var lastLevel = 1; // Уровень предыдущего заголовка | var lastLevel = 1; // Уровень предыдущего заголовка | ||
| Строка 477: | Строка 477: | ||
} | } | ||
// Перебираем все заголовки | // Перебираем все заголовки с классом .custom-heading | ||
$headings.each(function() { | $headings.each(function() { | ||
var $heading = $(this); | var $heading = $(this); | ||
var level = 2; // Уровень по умолчанию | |||
// | // Обновляем счётчики для текущего уровня | ||
updateCounters(level); | |||
updateCounters(level); | |||
var sectionId = $heading.attr('id') || 'heading-' + getSectionNumber(); | var sectionId = $heading.attr('id') || 'heading-' + getSectionNumber(); | ||
$heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | ||
// Извлекаем только текстовое содержимое заголовка | // Извлекаем только текстовое содержимое заголовка | ||
var headingText = $heading.text().trim(); | var headingText = $heading.text().trim(); | ||
// Проверяем, что текст заголовка не пустой | // Проверяем, что текст заголовка не пустой | ||
if (headingText.length > 0) { | if (headingText.length > 0) { | ||
while (tocCounters.length > level) { | while (tocCounters.length > level) { | ||
$currentList = $currentList.parent(); // Переходим к родительскому <ul> | $currentList = $currentList.parent(); // Переходим к родительскому <ul> | ||
} | } | ||
if (level > lastLevel) { | if (level > lastLevel) { | ||
$currentList = createNestedList($currentList); // Создаём новый вложенный список | $currentList = createNestedList($currentList); // Создаём новый вложенный список | ||
} | } | ||
// Создаём элемент списка в оглавлении (TOC) | // Создаём элемент списка в оглавлении (TOC) | ||
var tocItem = $('<li>') | var tocItem = $('<li>') | ||
.addClass('toclevel-' + (level - 1)) | .addClass('toclevel-' + (level - 1)) | ||