MediaWiki:Common.js: відмінності між версіями
Admin (обговорення | внесок) (Common.js v2: diagnostic logs + simpler logic) |
Admin (обговорення | внесок) (Common.js v3: own classes (no vector-pinnable), insert after TOC container) |
||
| Рядок 1: | Рядок 1: | ||
/* Per-page sidebar widgets */ | /* Per-page sidebar widgets */ | ||
$(function () { | $(function () { | ||
var pageName = mw.config.get('wgPageName') || ''; | var pageName = mw.config.get('wgPageName') || ''; | ||
if (pageName === '🇷🇴_Румунія') { | |||
if (pageName === '🇷🇴_Румунія | |||
var $toc = $('#mw-panel-toc'); | var $toc = $('#mw-panel-toc'); | ||
if (!$toc.length) | if (!$toc.length) return; | ||
var cities = [ | var cities = [ | ||
| Рядок 27: | Рядок 19: | ||
.attr('id', 'mw-panel-cities') | .attr('id', 'mw-panel-cities') | ||
.attr('aria-label', 'Міста') | .attr('aria-label', 'Міста') | ||
.addClass(' | .addClass('sidebar-cities-nav'); | ||
var $header = $('<div>') | var $header = $('<div>').addClass('sidebar-cities-header') | ||
.append($('<h2>').addClass('sidebar-cities-label').text('Міста')); | |||
.append($('<h2>').addClass(' | |||
var $list = $('<ul>').addClass(' | var $list = $('<ul>').addClass('sidebar-cities-list'); | ||
cities.forEach(function (city) { | cities.forEach(function (city) { | ||
var href = mw.util.getUrl(city.page); | var href = mw.util.getUrl(city.page); | ||
var $li = $('<li>').addClass(' | var $li = $('<li>').addClass('sidebar-cities-item'); | ||
var $a = $('<a>').addClass(' | var $a = $('<a>').addClass('sidebar-cities-link').attr('href', href).text(city.title); | ||
$li.append($a); | $li.append($a); | ||
$list.append($li); | $list.append($li); | ||
| Рядок 44: | Рядок 34: | ||
$nav.append($header).append($list); | $nav.append($header).append($list); | ||
$toc.after($nav); | |||
// Insert AFTER the entire TOC container (not just nav) so it sits below it | |||
var $tocContainer = $toc.closest('.mw-table-of-contents-container'); | |||
if ($tocContainer.length) { | |||
$tocContainer.after($nav); | |||
} else { | |||
$toc.after($nav); | |||
} | |||
} | } | ||
}); | }); | ||
Версія за 18:27, 2 травня 2026
/* Per-page sidebar widgets */
$(function () {
var pageName = mw.config.get('wgPageName') || '';
if (pageName === '🇷🇴_Румунія') {
var $toc = $('#mw-panel-toc');
if (!$toc.length) return;
var cities = [
{ title: 'Бухарест', page: 'Румунія/Бухарест' },
{ title: 'Клуж-Напока', page: 'Румунія/Клуж-Напока' },
{ title: 'Тімішоара', page: 'Румунія/Тімішоара' },
{ title: 'Брашов', page: 'Румунія/Брашов' },
{ title: 'Ясси', page: 'Румунія/Ясси' },
{ title: 'Сібіу', page: 'Румунія/Сібіу' }
];
var $nav = $('<nav>')
.attr('id', 'mw-panel-cities')
.attr('aria-label', 'Міста')
.addClass('sidebar-cities-nav');
var $header = $('<div>').addClass('sidebar-cities-header')
.append($('<h2>').addClass('sidebar-cities-label').text('Міста'));
var $list = $('<ul>').addClass('sidebar-cities-list');
cities.forEach(function (city) {
var href = mw.util.getUrl(city.page);
var $li = $('<li>').addClass('sidebar-cities-item');
var $a = $('<a>').addClass('sidebar-cities-link').attr('href', href).text(city.title);
$li.append($a);
$list.append($li);
});
$nav.append($header).append($list);
// Insert AFTER the entire TOC container (not just nav) so it sits below it
var $tocContainer = $toc.closest('.mw-table-of-contents-container');
if ($tocContainer.length) {
$tocContainer.after($nav);
} else {
$toc.after($nav);
}
}
});