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

мНет описания правки
мНет описания правки
Строка 452: Строка 452:
var lastLevel = 1;  
var lastLevel = 1;  
var $currentList = $toc;  
var $currentList = $toc;  
var $nestedList; // Для хранения вложенного списка
var $nestedList = null; // Для хранения вложенного списка


function updateCounters(level) {
function updateCounters(level) {
Строка 509: Строка 509:


if (headingText.length > 0) {
if (headingText.length > 0) {
// Обработка уровня заголовка
if (level > 1) {
if (level > 1) {
// Проверяем уровень текущего элемента
// Переход к правильному уровню
while (tocCounters.length > level) {
while (tocCounters.length > level) {
$currentList = $currentList.parent();
$currentList = $currentList.parent();
}
}


// Если текущий уровень равен предыдущему, добавляем в тот же список
// Создание вложенного списка, если он еще не создан
if (tocCounters[level - 1] > 1) {
$currentList = $currentList.parent(); // Возвращаемся к родительскому уровню
}
 
// Проверяем, если есть вложенный список
if (!$nestedList || $nestedList.parent().is($currentList) === false) {
if (!$nestedList || $nestedList.parent().is($currentList) === false) {
$nestedList = createNestedList($currentList);
$nestedList = createNestedList($currentList);
}
}
 
$currentList = $nestedList; // Переходим в новый вложенный список
$currentList = $nestedList; // Переход в вложенный список
} else {
} else {
$currentList = $toc;
$currentList = $toc; // Сбрасываем на основной TOC
}
}


Строка 537: Строка 533:
)
)
);
);
 
$currentList.append(tocItem);
$currentList.append(tocItem);
}
}