MediaWiki:Common.js

Материал из Музыкально-фольклорный депозитарий
Версия от 12:54, 8 апреля 2026; Krdk (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

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

  • 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 rawText = $link.text().trim();

            // Разделяем текст по символу "|", чтобы отделить имя файла от размера
            var parts = rawText.split('|');
            var fileName = parts[0].trim();
            // Если размер указан — берем его, если нет — ставим 100%
            var customWidth = parts[1] ? parts[1].trim() : '100%'; 

            if (fileName.match(/\.svg$/i)) {
                var imgSrc = mw.util.getUrl('Special:FilePath/' + fileName);

                var $img = $('<img>', {
                    src: imgSrc,
                    alt: 'Баннер',
                    css: {
                        'width': customWidth, // Применяем индивидуальный размер!
                        'max-width': '100%',  // Защита от вылезания за пределы сайдбара
                        'height': 'auto',
                        'display': 'block',
                        'margin': '5px auto',
                        'border-radius': '4px',
                        'transition': 'transform 0.2s'
                    }
                });

                $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);
            }
        });
    });
});