MediaWiki:Common.js

Материал из Музыкально-фольклорный депозитарий

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
/* Бронебойный скрипт для SVG-баннеров в боковом меню (Timeless) */
mw.loader.using('mediawiki.util').then(function () {
    mw.hook('wikipage.content').add(function () {
        // Ищем ссылки во всех боковых меню (и левом, и правом)
        $('#mw-site-navigation a, #mw-related-navigation a, .sidebar-chunk a, .mw-portlet a').each(function () {
            var $link = $(this);
            var linkText = $link.text().trim();

            // Если текст ссылки заканчивается на .svg (регистронезависимо)
            if (linkText.match(/\.svg$/i)) {
                // Получаем прямую ссылку на файл
                var imgSrc = mw.util.getUrl('Special:FilePath/' + linkText);

                // Создаем картинку
                var $img = $('<img>', {
                    src: imgSrc,
                    alt: 'Баннер',
                    css: {
                        'max-width': '100%',
                        'height': 'auto',
                        'display': 'block',
                        'margin': '5px auto',
                        'border-radius': '4px',
                        'transition': 'transform 0.2s'
                    }
                });

                // Эффект при наведении прямо в JS (чтобы не зависеть от CSS)
                $img.hover(
                    function() { $(this).css('transform', 'scale(1.03)'); },
                    function() { $(this).css('transform', 'scale(1)'); }
                );

                // Очищаем стили родительских элементов (убираем маркеры списка)
                $link.closest('li').css({'list-style': 'none', 'margin-bottom': '10px'});
                $link.closest('ul').css({'padding-left': '0', 'list-style': 'none'});

                // Меняем текст на картинку
                $link.empty().append($img);
            }
        });
    });
});