MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 450: | Строка 450: | ||
var $headings = $content.find('h1, h2, h3, h4, h5, h6, .custom-heading'); | var $headings = $content.find('h1, h2, h3, h4, h5, h6, .custom-heading'); | ||
var tocCounters = []; | var tocCounters = []; | ||
var $currentList = $toc; | var $currentList = $toc; | ||
var | var lastLevel = 1; // Уровень последнего заголовка | ||
function updateCounters(level) { | function updateCounters(level) { | ||
| Строка 462: | Строка 460: | ||
} | } | ||
tocCounters[level - 1]++; | tocCounters[level - 1]++; | ||
} | } | ||
function getSectionNumber() { | function getSectionNumber() { | ||
return tocCounters.join('.'); | return tocCounters.join('.'); | ||
} | } | ||
| Строка 492: | Строка 483: | ||
var sectionId = 'heading-' + getSectionNumber(); | var sectionId = 'heading-' + getSectionNumber(); | ||
$headlineSpan.attr('id', sectionId); | $headlineSpan.attr('id', sectionId); | ||
} | } | ||
} else { | } else { | ||
| Строка 511: | Строка 494: | ||
if (headingText.length > 0) { | if (headingText.length > 0) { | ||
// Обработка уровня заголовка | // Обработка уровня заголовка | ||
if (level > | if (level > lastLevel) { | ||
// Если уровень | // Если уровень увеличивается, создаем новый вложенный список | ||
var $nestedList = $('<ul>').appendTo($currentList); | |||
$currentList = $nestedList; // Переход в новый вложенный список | |||
} else if (level < lastLevel) { | |||
// Если уровень уменьшается, возвращаемся к родительскому списку | |||
while (tocCounters.length > level) { | while (tocCounters.length > level) { | ||
$currentList = $currentList.parent(); | $currentList = $currentList.parent(); | ||
} | } | ||
} | } | ||
| Строка 535: | Строка 513: | ||
); | ); | ||
$currentList.append(tocItem); // Добавляем элемент в текущий список | |||
lastLevel = level; // Обновляем уровень последнего заголовка | |||
} | } | ||
}); | }); | ||