Lompat ke isi

MediaWiki:Common.js

Dari Mippedia Data
Revisi sejak 14 April 2026 21.55 oleh Admin (bicara | kontrib)

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
/* ==========================================================
   🧠 MIPPEDIA DATA AUTO-DESCRIPTION (ULTIMATUM EDITION)
   ========================================================== */
(function() {
    $(document).ready(function() {
        var $descBox = $('#mip-auto-description');
        var $wrapper = $('#mip-desc-wrapper');
        var $triggerCont = $('#mip-trigger-container');
        var $triggerBtn = $('#mip-desc-trigger');
        
        if ($descBox.length) {
            var pageTitle = mw.config.get('wgPageName');
            var apiUrl = 'https://id.mippedia.org/w/api.php';

            $.ajax({
                url: apiUrl,
                data: {
                    action: 'query',
                    prop: 'extracts',
                    exintro: true,
                    explaintext: true,
                    titles: pageTitle,
                    format: 'json',
                    origin: '*'
                },
                dataType: 'json',
                success: function(data) {
                    var pages = data.query.pages;
                    var pageId = Object.keys(pages)[0];
                    
                    if (pageId != "-1") {
                        var extract = pages[pageId].extract;

                        // 1. PEMBERSIHAN TOTAL
                        extract = extract.replace(/\{\{[^}]+\}\}/g, ''); // Hapus {{Template}}
                        extract = extract.replace(/\(\s*\)/g, '');      // Hapus kurung kosong ( ) sisa template
                        extract = extract.replace(/\s\s+/g, ' ');       // Benerin spasi renggang
                        extract = extract.trim();

                        var sourceLink = 'https://id.mippedia.org/wiki/' + encodeURIComponent(pageTitle);
                        var fullContent = extract + ' <a href="' + sourceLink + '" target="_blank" style="color: #6a5acd; font-weight: bold; text-decoration: none;">Dari Mippedia ↗️</a>';

                        // 2. TAMPILKAN
                        $descBox.html(fullContent);

                        // 3. CEK TINGGI (Dikasih delay biar render beres dulu)
                        setTimeout(function() {
                            var actualHeight = $descBox[0].scrollHeight;
                            if (actualHeight > 95) {
                                $triggerCont.show();
                            }
                        }, 800);
                    }
                }
            });

            // 4. EVENT KLIK SMOOTH
            $triggerBtn.on('click', function() {
                var actualHeight = $descBox[0].scrollHeight;
                if ($wrapper.css('max-height') === '95px') {
                    $wrapper.css('max-height', (actualHeight + 40) + 'px');
                    $(this).text('- Lipat Deskripsi').css('background', '#6a5acd').css('color', '#fff');
                } else {
                    $wrapper.css('max-height', '95px');
                    $(this).text('+ Tampilkan Selengkapnya').css('background', '#f1f0ff').css('color', '#6a5acd');
                }
            });
        }
    });
})();