MediaWiki:Common.js: відмінності між версіями
Admin (обговорення | внесок) (Common.js: per-page sidebar — Міста на 🇷🇴 Румунія) |
Admin (обговорення | внесок) (Common.js v2: diagnostic logs + simpler logic) |
||
| Рядок 1: | Рядок 1: | ||
/* Per-page sidebar widgets | /* Per-page sidebar widgets */ | ||
$(function () { | |||
console.log('[nomadica] common.js loaded, wgPageName =', mw.config.get('wgPageName')); | |||
var pageName = mw.config.get('wgPageName') || ''; | |||
// 🇷🇴 Румунія | |||
if (pageName === '🇷🇴_Румунія' || pageName.indexOf('Румунія') !== -1 && pageName.indexOf('/') === -1) { | |||
console.log('[nomadica] matched Romania country page, injecting cities sidebar'); | |||
var $toc = $('#mw-panel-toc'); | |||
if (!$toc.length) { | |||
console.warn('[nomadica] #mw-panel-toc not found'); | |||
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('vector-toc vector-pinnable-element sidebar-cities-nav'); | |||
var $header = $('<div>') | |||
.addClass('vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned') | |||
.append($('<h2>').addClass('vector-pinnable-header-label').text('Міста')); | |||
$nav.append($header).append($list); | var $list = $('<ul>').addClass('vector-toc-contents'); | ||
cities.forEach(function (city) { | |||
var href = mw.util.getUrl(city.page); | |||
} | var $li = $('<li>').addClass('vector-toc-list-item vector-toc-level-1'); | ||
var $a = $('<a>').addClass('vector-toc-link').attr('href', href) | |||
.append($('<div>').addClass('vector-toc-text').text(city.title)); | |||
$li.append($a); | |||
$list.append($li); | |||
}); | |||
$nav.append($header).append($list); | |||
$toc.after($nav); | |||
console.log('[nomadica] cities sidebar injected, $nav=', $nav[0]); | |||
} | |||
}); | }); | ||
Версія за 18:20, 2 травня 2026
/* Per-page sidebar widgets */
$(function () {
console.log('[nomadica] common.js loaded, wgPageName =', mw.config.get('wgPageName'));
var pageName = mw.config.get('wgPageName') || '';
// 🇷🇴 Румунія
if (pageName === '🇷🇴_Румунія' || pageName.indexOf('Румунія') !== -1 && pageName.indexOf('/') === -1) {
console.log('[nomadica] matched Romania country page, injecting cities sidebar');
var $toc = $('#mw-panel-toc');
if (!$toc.length) {
console.warn('[nomadica] #mw-panel-toc not found');
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('vector-toc vector-pinnable-element sidebar-cities-nav');
var $header = $('<div>')
.addClass('vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned')
.append($('<h2>').addClass('vector-pinnable-header-label').text('Міста'));
var $list = $('<ul>').addClass('vector-toc-contents');
cities.forEach(function (city) {
var href = mw.util.getUrl(city.page);
var $li = $('<li>').addClass('vector-toc-list-item vector-toc-level-1');
var $a = $('<a>').addClass('vector-toc-link').attr('href', href)
.append($('<div>').addClass('vector-toc-text').text(city.title));
$li.append($a);
$list.append($li);
});
$nav.append($header).append($list);
$toc.after($nav);
console.log('[nomadica] cities sidebar injected, $nav=', $nav[0]);
}
});