MediaWiki:Common.js
Материал из Набег Wiki
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/*WikiEditor/Викификатор*/
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
mw.loader.load( '//ru.wikipedia.org/w/index.php?title=MediaWiki:Gadget-wikificator.js&action=raw&ctype=text/javascript' );
}
var customizeToolbar = function() {
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'advanced',
'group': 'format',
'tools': {
'wikify': {
label: 'Викификатор',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/0/06/Wikify-toolbutton.png',
action: {
type: 'callback',
execute: function(context){
Wikify();
}
}
}
}
} );
};
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
if ( mw.user.options.get('usebetatoolbar') ) {
mw.loader.using( 'ext.wikiEditor.toolbar', function () {
$(document).ready( customizeToolbar );
} );
}
} );
}
/* CloudImage alignment class fixer
Переносит классы выравнивания с <img> на <figure>. */
mw.loader.using(['jquery'], function () {
(function ($) {
var allowed = ['tright', 'tleft', 'tcenter', 'tnone'];
function transferOnce($context) {
$context.find('figure.cimg').each(function () {
var $fig = $(this);
var $img = $fig.find('img.cimg').first();
if (!$img.length) return;
allowed.forEach(function (cls) {
if ($img.hasClass(cls) && !$fig.hasClass(cls)) {
$fig.addClass(cls);
// необязательно убирать класс с img — но лучше убрать, чтобы не дублировать
$img.removeClass(cls);
}
});
});
}
// initial pass on DOM ready
$(function () {
transferOnce($(document));
});
// react to wikipage content replacements (preview, VE, ajax)
if (mw.hook && mw.hook('wikipage.content')) {
mw.hook('wikipage.content').add(function ($context) {
transferOnce($context);
});
}
// MutationObserver fallback (на случай, если что-то динамически вставляет узлы)
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (m) {
if (m.addedNodes && m.addedNodes.length) {
// ищем только в добавленных узлах для экономии
$(m.addedNodes).each(function () {
var $n = $(this);
if ($n.is && $n.is('figure.cimg') || $n.find && $n.find('figure.cimg').length) {
transferOnce($n);
}
});
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
})(jQuery);
});