MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) м Функции для добавления кастомных заголовков в TOC и кнопки "править" |
Pok (обсуждение | вклад) Нет описания правки |
||
| Строка 449: | Строка 449: | ||
if ($toc.length === 0) { | if ($toc.length === 0) { | ||
return; // Если оглавление отсутствует, выходим | return; // Если оглавление отсутствует, выходим | ||
} | |||
var headingCount = 0; // Счётчик заголовков | |||
var currentNumbering = [0]; // Массив для отслеживания нумерации | |||
// Функция для обновления текущей нумерации | |||
function updateNumbering(level) { | |||
while (currentNumbering.length <= level) { | |||
currentNumbering.push(0); | |||
} | |||
currentNumbering[level]++; | |||
for (var i = level + 1; i < currentNumbering.length; i++) { | |||
currentNumbering[i] = 0; | |||
} | |||
return currentNumbering.slice(1, level + 1).join('.'); | |||
} | } | ||
$content.find('.custom-heading').each(function(index) { | $content.find('.custom-heading').each(function(index) { | ||
var sectionId = $(this).attr('id') || 'custom-heading-' + | headingCount++; | ||
var sectionId = $(this).attr('id') || 'custom-heading-' + headingCount; | |||
$(this).attr('id', sectionId); // Присваиваем уникальный id заголовку | $(this).attr('id', sectionId); // Присваиваем уникальный id заголовку | ||
// Определяем уровень заголовка | |||
var headingLevel = $(this).data('level') || 2; | |||
var numbering = updateNumbering(headingLevel); // Получаем правильный номер | |||
// Создаем ссылку "править" | // Создаем ссылку "править" | ||
| Строка 460: | Строка 480: | ||
$('<a>').attr('href', editUrl).text('править') | $('<a>').attr('href', editUrl).text('править') | ||
); | ); | ||
$(this).append(editLink); // Добавляем ссылку "править" | $(this).prepend(numbering + ' ').append(editLink); // Добавляем нумерацию и ссылку "править" | ||
// Добавляем заголовок в оглавление (TOC) | // Добавляем заголовок в оглавление (TOC) | ||
var headingText = $(this).text(); | var headingText = $(this).clone().children().remove().end().text(); // Получаем текст без ссылки "править" | ||
var tocItem = $('<li>').append( | var tocItem = $('<li>').append( | ||
$('<a>').attr('href', '#' + sectionId).text(headingText) | $('<a>').attr('href', '#' + sectionId).text(numbering + ' ' + headingText) | ||
); | ); | ||
$toc.append(tocItem); // Добавляем элемент в оглавление | $toc.append(tocItem); // Добавляем элемент в оглавление | ||