MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 447: | Строка 447: | ||
mw.hook('wikipage.content').add(function($content) { | mw.hook('wikipage.content').add(function($content) { | ||
var $toc = $('#toc ul'); // Находим TOC | var $toc = $('#toc ul'); // Находим TOC | ||
var | |||
// Получаем все кастомные заголовки | |||
var $customHeadings = $content.find('.custom-heading'); | |||
// Определяем текущие элементы TOC | |||
var tocItems = $toc.find('li'); | |||
var tocNumber = tocItems.length + 1; // Начинаем нумерацию с первого доступного номера | var tocNumber = tocItems.length + 1; // Начинаем нумерацию с первого доступного номера | ||
$customHeadings.each(function(index) { | |||
$ | var $heading = $(this); | ||
var | var sectionId = $heading.attr('id') || 'custom-heading-' + tocNumber; | ||
$ | $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | ||
// Получаем текст заголовка | // Получаем текст заголовка | ||
var headingText = $ | var headingText = $heading.clone().children().remove().end().text().trim(); | ||
// Создаем элемент в оглавлении (TOC) | // Создаем элемент в оглавлении (TOC) | ||
| Строка 465: | Строка 470: | ||
) | ) | ||
); | ); | ||
$toc.append(tocItem); // Добавляем элемент в | |||
// Вставляем элемент в TOC в правильное место | |||
if (index === 0) { | |||
$toc.append(tocItem); // Добавляем элемент в конец TOC, если это первый элемент | |||
} else { | |||
var $prevTocItem = $toc.find('li').eq(index - 1); | |||
$prevTocItem.after(tocItem); // Вставляем после предыдущего элемента | |||
} | |||
tocNumber++; // Увеличиваем номер для следующего элемента | tocNumber++; // Увеличиваем номер для следующего элемента | ||