Добро пожаловать на обновлённую Minecraft Wiki!
MediaWiki:Gadget-gadgets-definition-links.js[править введение]
Перейти к навигации
Перейти к поиску
У этого скрипта нет документации. Если вы знаете, как использовать этот скрипт, пожалуйста, добавьте соответствующую информацию.
Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Выберите очистку кэша в меню Инструменты → Настройки
$( function() {
var config = mw.config.get( [
'wgCanonicalNamespace',
'wgTitle',
'wgLegalTitleChars'
] );
if ( config.wgCanonicalNamespace !== 'MediaWiki' ) return;
// Add subpage link to return to gadgets definition when on gadget pages
if ( config.wgTitle.startsWith('Gadget-') ) {
document.querySelector('#mw-content-subtitle').innerHTML += '<div class="subpages">< <a href="/w/MediaWiki:Gadgets-definition" title="MediaWiki:Gadgets-definition">MediaWiki:Gadgets-definition</a></div>';
return;
}
if ( config.wgTitle !== 'Gadgets-definition' ) return;
var $content = $('#mw-content-text .mw-parser-output').addClass('gdl-gadgets-definition');
$content.find('.mw-headline').wrapInner( function() {
var section = this.textContent.trim();
if ( /\*:\s\|/.test( section ) ) return;
var page = 'MediaWiki:Gadget-section-' + section;
return $('<a>').attr('href', mw.util.getUrl(page)).attr('title', page);
} );
var regex = new RegExp( '^([a-zA-Z](?:[-_:.\\w ]*[a-zA-Z0-9])?)(\\s*\\[.*?\\])?(\\s*(?:\\|[' + config.wgLegalTitleChars + ']*)+)$' );
$content.find('li').html( function() {
var text = this.textContent.trim();
var match = regex.exec(text) || [],
name = match[1],
options = match[2] || '',
pages = match[3];
if ( !name ) return;
if ( options ) {
options = /^(\s*\[\s*)(.*?)(\s*\]\s*)$/.exec(options).flatMap( function(part, i) {
if ( !i ) return [];
if ( i !== 2 ) return [ $('<span class="gdl-option-bracket">').text(part) ];
return part.split('|').flatMap( function(option) {
if ( !option.trim() ) return [$('<span class="gdl-option-separator">').text('|'), option];
var result = [ $('<span class="gdl-option-separator">').text('|') ];
var [optionname, ...optionvalue] = option.split('=');
optionvalue = optionvalue.join('=');
if ( optionname.trim() === 'ResourceLoader' ) result.push( $('<span class="gdl-option-ResourceLoader">').text(option) );
else if ( optionname.trim() === 'default' ) result.push( $('<span class="gdl-option-default">').text(option) );
else if ( optionname.trim() === 'hidden' ) result.push( $('<span class="gdl-option-hidden">').text(option) );
else if ( optionname.trim() === 'package' ) result.push( $('<span class="gdl-option-package">').text(option) );
else if ( optionname.trim() === 'dependencies' && optionvalue ) result.push(
mw.html.escape(optionname),
$('<span class="gdl-option-value-assign">').text('='),
...optionvalue.split(',').flatMap( function(dependency) {
if ( !dependency.trim() ) return [$('<span class="gdl-option-value-separator">').text(','), dependency];
var resultvalue = [ $('<span class="gdl-option-value-separator">').text(',') ];
if ( dependency.trim() === 'mcw.messages' ) resultvalue.push( $('<span class="gdl-dependency-mcw-messages">').text(dependency) );
else if ( dependency.trim().startsWith( 'ext.gadget.' ) ) resultvalue.push( $('<span class="gdl-dependency-ext-gadget">').text(dependency) );
else resultvalue.push( mw.html.escape(dependency) );
return resultvalue;
} ).slice(1)
);
else if ( optionname.trim() === 'peers' && optionvalue ) result.push(
mw.html.escape(optionname),
$('<span class="gdl-option-value-assign">').text('='),
...optionvalue.split(',').flatMap( function(peer) {
if ( !peer.trim() ) return [$('<span class="gdl-option-value-separator">').text(','), peer];
return [$('<span class="gdl-option-value-separator">').text(','), $('<span class="gdl-option-peers">').text(peer)];
} ).slice(1)
);
else if ( optionvalue ) result.push(
mw.html.escape(optionname),
$('<span class="gdl-option-value-assign">').text('='),
...optionvalue.split(',').flatMap( function(valuepart) {
return [$('<span class="gdl-option-value-separator">').text(','), mw.html.escape(valuepart)];
} ).slice(1)
);
else result.push( mw.html.escape(option) );
return result;
} ).slice(1);
} );
}
return [
$('<a>').attr('href', mw.util.getUrl('MediaWiki:Gadget-' + name)).attr('title', 'MediaWiki:Gadget-' + name).text(name),
options,
pages.split('|').flatMap( function(page, i) {
if ( !i ) return page;
if ( !page.trim() ) return [$('<span class="gdl-page-separator">').text('|'), page];
var pagename = 'MediaWiki:Gadget-' + page.trim();
return [$('<span class="gdl-page-separator">').text('|'), $('<a>').attr('href', mw.util.getUrl(pagename)).attr('title', pagename).text(page)];
} )
].flat();
} );
} );