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

мНет описания правки
мНет описания правки
Строка 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 tocItems = $toc.find('li'); // Получаем текущие элементы TOC
 
        // Получаем все кастомные заголовки
         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) {
         $content.find('.custom-heading').each(function() {
             var $heading = $(this);
             var sectionId = $(this).attr('id') || 'custom-heading-' + tocNumber;
            var sectionId = $heading.attr('id') || 'custom-heading-' + tocNumber;
             $(this).attr('id', sectionId); // Присваиваем уникальный id заголовку
             $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку


             // Получаем текст заголовка
             // Получаем текст заголовка
             var headingText = $(this).clone().children().remove().end().text().trim();
             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++; // Увеличиваем номер для следующего элемента