MediaWiki:Gadget-subpages.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
/* Скрипт, добавляющий в меню "Ещё" и боковую панель ссылки на подстраницы
Автор - [[Участник:Lord]]
Дополнения - [[Участник:Больница для слабаков]]
[[Участник:Септумулей]]
[[Участник:Ла Ротьер]]
[[Участник:Ламантепер]]
[[Участник:Diman Russkov]]*/
mw.loader.using( 'mediawiki.util' ).then( function() {
var ns = mw.config.get( 'wgNamespaceNumber' );
var pageName = mw.config.get( 'wgPageName' );
var title = mw.config.get( 'wgTitle' );
var wikiName = mw.config.get( 'wgSiteName' ) || 'вики';
// 1. В основном пространстве имён (ID 0)
if ( ns === 0 ) {
// Ссылка на "Подстраницы" в пространстве имён "Подстраница" (ID 3004)
// Название пространства имён (например, "Подстраница") берётся динамически из конфигурации вики
var subpageNs = mw.config.get( 'wgFormattedNamespaces' )[3004] || 'Подстраница';
mw.util.addPortletLink(
'p-cactions',
mw.util.getUrl( 'Special:PrefixIndex/' + subpageNs + ':' + pageName ),
'Подстраницы',
null,
'Подстраницы'
);
// Добавляет в боковое меню ссылку "Создать подстраницу"
mw.util.addPortletLink(
'p-tb',
mw.util.getUrl( pageName, {
action: 'edit',
section: 'new',
nosummary: 'yes',
preview: 'yes',
preload: 'Template:CreateSubpage'
} ),
'Создать подстраницу',
null,
'Создать подстраницу для этой статьи ' + wikiName + '!'
);
}
// 2. В пространствах имён Участник (2), Проект/ЧТМ (4), Шаблон (10), Модуль (828), ЦК (3002) и Заготовка (3014)
var allowedNamespaces = [ 2, 4, 10, 828, 3002, 3014 ];
if ( allowedNamespaces.indexOf( ns ) !== -1 ) {
// Добавляет ссылку "Создать подстраницу"
mw.util.addPortletLink(
'p-tb',
mw.util.getUrl( pageName, {
action: 'edit',
section: 'new',
nosummary: 'yes',
preview: 'yes',
preload: 'Template:CreateSubpage/2'
} ),
'Создать подстраницу',
null,
'Создать подстраницу!'
);
// Даёт ссылку на собственные подстраницы в этих же пространствах
var rootPage = pageName.split( '/' )[0];
mw.util.addPortletLink(
'p-cactions',
mw.util.getUrl( 'Special:PrefixIndex/:' + rootPage ),
'Подстраницы',
null,
'Подстраницы'
);
}
// 3. В пространстве "Подстраница" (ID 3004) возвращает на основную статью
if ( ns === 3004 ) {
var titleParts = title.split( '/' );
var targetPage = '';
// Учитываем специфику названий со слэшем в долях "1/8 финала)" и "1/4 финала)"
if ( titleParts[1] === '8 финала)' || titleParts[1] === '4 финала)' ) {
targetPage = titleParts[0] + '/' + titleParts[1];
} else {
targetPage = titleParts[0];
}
mw.util.addPortletLink(
'p-cactions',
mw.util.getUrl( targetPage ),
'Основная страница',
null,
'Вернуться на корневую страницу'
);
}
// 4. Ссылка на архивацию страницы в WebArchive (для всех пространств имён)
// Динамически собираем полную каноническую ссылку на текущую страницу
var protocol = location.protocol;
var server = mw.config.get( 'wgServer' );
if ( server.startsWith( '//' ) ) {
server = protocol + server;
}
var canonicalUrl = server + mw.util.getUrl( pageName );
mw.util.addPortletLink(
'p-cactions',
'https://web.archive.org/save/' + canonicalUrl,
'Архивировать',
null,
'Создать архивную копию данной страницы на сайте WebArchive'
);
} );