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
         if ($toc.length === 0) {
         var tocItems = $toc.find('li'); // Получаем текущие элементы TOC
            return; // Если оглавление отсутствует, выходим
         var tocNumber = tocItems.length + 1; // Начинаем нумерацию с первого доступного номера
         }


         // Перебираем все кастомные заголовки
         // Перебираем все кастомные заголовки
         $content.find('.custom-heading').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-' + (index + 1);
             $(this).attr('id', sectionId); // Присваиваем уникальный id заголовку
             $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку
 
            // Получаем текст заголовка до добавления ссылки "править"
            var headingText = $(this).clone().children().remove().end().text().trim();


             // Создаем ссылку "править"
             // Создаем ссылку "править"
Строка 462: Строка 463:
                 $('<a>').attr('href', editUrl).text('править')
                 $('<a>').attr('href', editUrl).text('править')
             );
             );
             $heading.append(editLink); // Добавляем ссылку "править" к заголовку
             $(this).append(editLink); // Добавляем ссылку "править" к заголовку


             // Добавляем заголовок в оглавление (TOC)
             // Создаем элемент в оглавлении (TOC)
            var headingText = $heading.clone().children().remove().end().text().trim(); // Получаем текст без ссылки "править"
             var tocItem = $('<li>').append(
             var tocItem = $('<li>').append(
                 $('<a>').attr('href', '#' + sectionId).append(
                 $('<a>').attr('href', '#' + sectionId).append(
                     $('<span>').addClass('tocnumber').text((index + 1) + '. '), // Нумерация
                     $('<span>').addClass('tocnumber').text(tocNumber + '. '),
                     $('<span>').addClass('toctext').text(headingText) // Текст заголовка
                     $('<span>').addClass('toctext').text(headingText)
                 )
                 )
             );
             );
             $toc.append(tocItem); // Добавляем элемент в оглавление
             $toc.append(tocItem); // Добавляем элемент в оглавление
            tocNumber++; // Увеличиваем номер для следующего элемента
         });
         });
     });
     });