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 | ||
if ($toc.length === 0) { | |||
return; // Если оглавление отсутствует, выходим | |||
} | |||
// Перебираем все кастомные заголовки | // Перебираем все кастомные заголовки | ||
$content.find('.custom-heading').each(function() { | $content.find('.custom-heading').each(function(index) { | ||
var $heading = $(this); | var $heading = $(this); | ||
var sectionId = $heading.attr('id') || 'custom-heading-' + | var sectionId = $heading.attr('id') || 'custom-heading-' + (index + 1); | ||
$heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | $heading.attr('id', sectionId); // Присваиваем уникальный id заголовку | ||
| Строка 463: | Строка 464: | ||
$heading.append(editLink); // Добавляем ссылку "править" к заголовку | $heading.append(editLink); // Добавляем ссылку "править" к заголовку | ||
// | // Добавляем заголовок в оглавление (TOC) | ||
var headingText = $heading. | 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( | $('<span>').addClass('tocnumber').text((index + 1) + '. '), // Нумерация | ||
$('<span>').addClass('toctext').text(headingText) | $('<span>').addClass('toctext').text(headingText) // Текст заголовка | ||
) | ) | ||
); | ); | ||
$toc.append(tocItem); // Добавляем элемент в оглавление | $toc.append(tocItem); // Добавляем элемент в оглавление | ||
}); | }); | ||
}); | }); | ||