Lompat ke isi

MediaWiki:Common.js

Dari Wikisporta, ensiklopedia olahraga

Catatan: Setelah menerbitkan, Anda mungkin perlu melewati tembolok peramban web Anda untuk melihat perubahan.

  • Firefox/Safari: Tekan dan tahan Shift sembari mengeklik Reload, atau tekan Ctrl-F5 atau Ctrl-R (⌘-R di Mac)
  • Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R di Mac)
  • Edge: Tahan Ctrl sembari mengeklik Refresh, atau tekan Ctrl-F5
mw.hook('wikipage.content').add(function ($content) {
    // KHUSUS HALAMAN UTAMA
    if (!mw.config.get('wgIsMainPage')) {
        return;
    }

    // Cari link bawaan template yang berisi kata "Selengkapnya"
    $content.find('a').filter(function () {
        return $(this).text().indexOf('Selengkapnya') !== -1;
    }).first().each(function () {
        var $link = $(this);
        var $paragraph = $link.closest('p');

        if ($paragraph.length && !$paragraph.hasClass('mp-processed')) {
            $paragraph.addClass('mp-processed');

            var articleUrl = $link.attr('href'); // Ambil URL artikel asli

            // Ubah teks link menjadi "Baca selengkapnya...."
            $link.text('Baca selengkapnya....');
            $link.addClass('featured-readmore-link');

            // Ambil isi teks paragraf, lalu pisahkan link dari teks utama
            var $linkClone = $link.clone();
            $link.remove(); // Hapus link dari posisi asli di paragraf

            var textHtml = $paragraph.html(); // Sisa teks artikel

            // Bungkus teks ke dalam kontainer lipatan
            var $collapsibleDiv = $('<div>', {
                'class': 'mp-collapsible-text',
                'html': textHtml
            });

            // Bungkus link di dalam wrapper bawah
            var $wrapperDiv = $('<div>', {
                'class': 'mp-readmore-wrapper'
            });
            $wrapperDiv.append($linkClone);

            // Susun ulang struktur HTML di dalam paragraf
            $paragraph.empty().append($collapsibleDiv).append($wrapperDiv);

            var isExpanded = false;

            // Handle Klik dengan Animasi Mulus
            mw.loader.using('mediawiki.util', function () {
                $wrapperDiv.on('click', 'a', function (e) {
                    if (!isExpanded) {
                        // KLIK PERTAMA: Buka lipatan teks dengan animasi halus ke bawah
                        e.preventDefault();
                        isExpanded = true;
                        $collapsibleDiv.addClass('is-expanded');
                    } else {
                        // KLIK KEDUA: Langsung arahkan ke halaman artikel asli
                        window.location.href = articleUrl;
                    }
                });
            });
        }
    });
});