Menüyü değiştir
Toggle preferences menu
Kişisel menüyü aç / kapat
Oturum açık değil
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Revizyonlar arasındaki fark

MediaWiki arayüz sayfası
Değişiklik özeti yok
Değişiklik özeti yok
 
(Aynı kullanıcının aradaki diğer 128 değişikliği gösterilmiyor)
1. satır: 1. satır:
/* Ana Sayfa Son Değişiklikler Feed Motoru - Kararlı Saf Görsel Sürümü */
// ==========================================================================
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function () {
// KIZILBASHICA JAVASCRIPT DOSYASI
    $(document).ready(function () {
// ==========================================================================
        var $feedContainer = $('#wiki-recent-js-feed');
        if (!$feedContainer.length) return;


         var api = new mw.Api();
$(document).ready(function() {
    var ns = mw.config.get('wgNamespaceNumber');
    var pageName = mw.config.get('wgTitle');
    var baseUrl = mw.config.get('wgArticlePath') || '/wiki/$1';
   
    var urlParams = new URLSearchParams(window.location.search);
    var isEditing = urlParams.has('action') && (urlParams.get('action') === 'edit' || urlParams.get('action') === 'submit');
 
    // ////// SÖZLÜK MADDELERİ VE ALINTI BUTONU
    if (ns === 0) {
        var mainTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Tart%C4%B1%C5%9Fma:"], a[href*="Talk:"]');
        if (mainTalkLink.length > 0) {
            var citePageUrl = baseUrl.replace('$1', 'Kaynak:' + encodeURIComponent(pageName));
           
            mainTalkLink.replaceWith(
                '<a href="' + citePageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
                '<span class="citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes"></span> ' +
                '<span>Alıntı</span>' +
                '</a>'
            );
        }
    }
   
    // ////// KAYNAK AD ALANI AYARLARI
    if (ns === 3000) {
        var sourceTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Kaynak_tart%C4%B1%C5%9Fma:"]');
        if (sourceTalkLink.length > 0) {
            var mainPageUrl = baseUrl.replace('$1', encodeURIComponent(pageName));
           
            sourceTalkLink.replaceWith(
                '<a href="' + mainPageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
                '<span class="citizen-ui-icon mw-ui-icon-eye mw-ui-icon-wikimedia-eye"></span> ' +
                '<span>Oku</span>' +
                '</a>'
            );
        }
 
         if (!isEditing) {
            if ($('.noarticletext').length > 0 || $('.mw-noarticletext').length > 0 || mw.config.get('wgArticleId') === 0) {
               
                $('.noarticletext, .mw-noarticletext').hide();
                var container = $('#mw-content-text');
                container.html('<div id="loading-cite" style="color: var(--kb-text-sub); font-style: italic; padding: 10px;">Kaynak arayüzü yükleniyor...</div>');
               
                $.ajax({
                    url: mw.util.wikiScript('api'),
                    data: {
                        action: 'parse',
                        text: '{{AlıntıYap|madde=' + pageName + '}}',
                        contentmodel: 'wikitext',
                        format: 'json'
                    },
                    success: function(data) {
                        if (data && data.parse && data.parse.text) {
                            container.html(data.parse.text['*']);
                        }
                    }
                });
            }
        }
    }
});
 
// ////// KOMUT PALETİ TÜRKÇELEŞTİRME VE ZAR BUTONU
const observer = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
        const menuHeadings = document.querySelectorAll('.citizen-menu__heading');
        menuHeadings.forEach(heading => {
            if (heading.textContent.trim() === 'Last modified') heading.textContent = 'Son değişiklikler';
        });
 
        const palette = document.querySelector('.citizen-command-palette');
        if (palette) {
            const inputArea = palette.querySelector('.citizen-command-palette-header__input-area');
            const customBtnCheck = palette.querySelector('#citizen-custom-random-btn');
           
            if (inputArea && !customBtnCheck) {
                const randomBtn = document.createElement('div');
                randomBtn.id = 'citizen-custom-random-btn';
                randomBtn.title = 'Rastgele Sayfa Getir';
                randomBtn.innerHTML = '<span class="citizen-ui-icon mw-ui-icon-wikimedia-die"></span>';
                randomBtn.addEventListener('click', function() {
                    window.location.href = (mw.config.get('wgArticlePath') || '/wiki/$1').replace('$1', 'Özel:Rastgele');
                });
                inputArea.appendChild(randomBtn);
            }
 
            palette.querySelectorAll('*').forEach(el => {
                if (el.childNodes.length === 1 && el.textContent.trim() === 'Recent') el.textContent = 'Son Aramalar';
            });
 
            palette.querySelectorAll('[class*="badge"], [class*="item-badge"]').forEach(badge => {
                if (badge.textContent.trim() === 'Page') badge.innerHTML = 'Sayfa';
                else if (badge.textContent.trim() === 'Action') badge.innerHTML = 'Eylem';
            });
 
            palette.querySelectorAll('[class*="description"]').forEach(desc => {
                if (desc.textContent.trim() === 'Create or edit page') desc.textContent = 'Sayfa oluştur veya düzenle';
            });
 
            const note = palette.querySelector('[class*="footer-note"]');
            if (note) {
                if (note.innerHTML.includes('all commands')) note.innerHTML = 'Tüm komutlar için <code>/</code> yazın';
                else if (note.innerHTML.includes('namespace')) note.innerHTML = 'Ad alanlarında aramak için <code>:</code> yazın';
                else if (note.innerHTML.includes('for users')) note.innerHTML = 'Kullanıcıları aramak için <code>@</code> yazın';
                else if (note.innerHTML.includes('for templates')) note.innerHTML = 'Şablonları aramak için <code>{{</code> yazın';
            }
 
            palette.querySelectorAll('[class*="keyboard-hint"]').forEach(hint => {
                const label = hint.querySelector('[class*="label"]');
                if (label) {
                    var txt = label.textContent.trim();
                    if (txt === 'Select') label.textContent = 'Seç';
                    else if (txt === 'Navigate') label.textContent = 'Gezin';
                    else if (txt === 'Actions') label.textContent = 'Eylemler';
                    else if (txt === 'Close') label.textContent = 'Kapat';
                }
            });
        }
    });
});
observer.observe(document.body, { childList: true, subtree: true });
 
// ////// YAPIŞKAN BAŞLIK (STICKY HEADER) ALINTI BUTONU
mw.hook('wikipage.content').add(function() {
    var stickyTalkBtn = document.getElementById('ca-talk-sticky-header');
    if (stickyTalkBtn) {
        var iconSpan = stickyTalkBtn.querySelector('.citizen-ui-icon');
        if (iconSpan) {
            iconSpan.className = 'citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes';
        }
       
        var textSpan = stickyTalkBtn.querySelector('span:not(.citizen-ui-icon)');
        if (textSpan) {
            textSpan.textContent = 'Alıntı';
        }
    }
});
 
// ////// YAN MENÜ (DRAWER) İKONLARI
mw.hook('wikipage.content').add(function() {
   
    // 1. Dizin İkonu
    var dizinMaddesi = document.getElementById('n-Dizin');
    if (dizinMaddesi && !dizinMaddesi.querySelector('.citizen-ui-icon')) {
        var link = dizinMaddesi.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet';
            link.insertBefore(icon, link.firstChild);
        }
    }
 
    // 2. Kısaltmalar İkonu
    var kisaltmalar = document.getElementById('n-Kısaltmalar');
    if (kisaltmalar && !kisaltmalar.querySelector('.citizen-ui-icon')) {
        var link = kisaltmalar.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-recentChanges mw-ui-icon-wikimedia-recentChanges';
            link.insertBefore(icon, link.firstChild);
        }
    }
 
    // 3. Kılavuz İkonu
    var kilavuz = document.getElementById('n-Kılavuz');
    if (kilavuz && !kilavuz.querySelector('.citizen-ui-icon')) {
        var link = kilavuz.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-article mw-ui-icon-wikimedia-article';
            link.insertBefore(icon, link.firstChild);
        }
    }
 
    // 4. Ansiklopedi Hakkında İkonu
    var hakkinda = document.getElementById('n-Ansiklopedi-hakkında');
    if (hakkinda && !hakkinda.querySelector('.citizen-ui-icon')) {
        var link = hakkinda.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-infoFilled mw-ui-icon-wikimedia-infoFilled';
            link.insertBefore(icon, link.firstChild);
        }
    }
});
 
// ////// YAZARLAR KARTI OLUŞTURMA
mw.hook('wikipage.content').add(function () {
    var $yazarKaynagi = $('#sayfa-yazarlari');
    var $target = $('#citizen-sidebar-lastmod');
   
    if (!$yazarKaynagi.length || !$target.length || $('#citizen-sidebar-yazarlar').length) {
        return;
    }
 
    var hamMetin = $yazarKaynagi.html();
    var satirlar = hamMetin.split(/<br\s*\/?>|\n/i);
    var gecerliYazarlar = [];
 
    satirlar.forEach(function (satir) {
        var duzMetin = satir.replace(/<\/?[^>]+(>|$)/g, "").trim();
        if (duzMetin !== "") {
            gecerliYazarlar.push(satir.trim());
        }
    });
 
    if (gecerliYazarlar.length > 0) {
        var baslikMetni = gecerliYazarlar.length > 1 ? 'Yazarlar' : 'Yazar';
       
        var $yazarKarti = $('<nav>', { 'id': 'citizen-sidebar-yazarlar', 'class': 'citizen-menu' });
        var $yazarBaslik = $('<div>', { 'class': 'citizen-menu__heading', 'text': baslikMetni });
        var $yazarIcerik = $('<div>', { 'class': 'citizen-menu__content' });
        var $ul = $('<ul>', { 'class': 'citizen-menu__content-list' });
 
        gecerliYazarlar.forEach(function (yazar) {
            var $li = $('<li>', { 'class': 'mw-list-item' });
            var $tempDiv = $('<div>').html(yazar);
            var $orijinalLink = $tempDiv.find('a').first();
            var $linkElementi;
 
            if ($orijinalLink.length > 0) {
                $linkElementi = $orijinalLink.clone();
                var metin = $linkElementi.text();
                $linkElementi.html('')
                    .append($('<span>', { 'class': 'citizen-ui-icon mw-ui-icon-history mw-ui-icon-wikimedia-userAvatar' }))
                    .append($('<span>').text(metin));
            } else {
                $linkElementi = $('<a>', { 'href': 'javascript:void(0);', 'style': 'cursor: default; color: inherit;' })
                    .append($('<span>', { 'class': 'citizen-ui-icon mw-ui-icon-history mw-ui-icon-wikimedia-userAvatar' }))
                    .append($('<span>').html(yazar));
            }
 
            $li.append($linkElementi);
            $ul.append($li);
        });
 
        $yazarIcerik.append($ul);
        $yazarKarti.append($yazarBaslik).append($yazarIcerik);
       
        $target.after($yazarKarti);
    }
});
 
// ////// TOC (İÇİNDEKİLER) AYARI VE GARİP BUTON TAMİRİ
mw.hook('wikipage.content').add(function () {
    var $orijinalToc = $('#citizen-toc').length ? $('#citizen-toc') : $('#mw-panel-toc');
    var $target = $('#citizen-sidebar-yazarlar').length ? $('#citizen-sidebar-yazarlar') : $('#citizen-sidebar-lastmod');
 
    if ($orijinalToc.length && $target.length && !$('#kb-duz-toc-baslik').length) {
          
          
         // Sadece ana maddeleri (Namespace 0) listeler
         var cssStilleri = `
        api.get({
            @media screen and (min-width: 1120px) {
            action: 'query',
                #kb-sticky-sidebar-toc {
            list: 'recentchanges',
                    position: sticky !important;
            rcnamespace: 0,
                    top: 5rem !important;
            rclimit: 5,
                    z-index: 10 !important;
             rctype: 'edit|new',
                    display: block !important;
             format: 'json'
                }
        }).done(function (data) {
             }
            var items = data.query.recentchanges;
             @media screen and (max-width: 1119px) {
            if (!items || items.length === 0) {
                #kb-sticky-sidebar-toc {
                $feedContainer.html('<div style="color:#666; padding:20px; text-align:center;">Henüz bir değişiklik bulunmuyor.</div>');
                    display: none !important;
                 return;
                }
                #citizen-toc, #mw-panel-toc {
                    display: block !important;
                    visibility: visible !important;
                    opacity: 1 !important;
                 }
             }
             }
        `;
        $('<style>').text(cssStilleri).appendTo('head');
       
        var $yeniBaslik = $('<div>', {
            'id': 'kb-duz-toc-baslik',
            'class': 'citizen-menu__heading',
            'text': $orijinalToc.find('.citizen-menu__heading').text().trim()
        });


            var titles = items.map(function (item) { return item.title; });
        var $yeniIcerik = $orijinalToc.find('.citizen-toc-contents').clone(true);


            // Sayfa görsellerini çek
        // *** GARİP BUTONU SİLEN DÜZELTME ***
            api.get({
        $yeniIcerik.find('button, .citizen-toc-toggle, .mw-ui-icon-wikimedia-chevron-down, .mw-ui-icon-wikimedia-chevron-up').remove();
                action: 'query',
 
                titles: titles.join('|'),
        $yeniIcerik.find('.citizen-toc-link').css({
                prop: 'pageimages',
            'font-size': '0.8rem',
                piprop: 'thumbnail',
            'background': 'transparent',
                pithumbsize: 160,
            'background-color': 'transparent',
                format: 'json'
            'box-shadow': 'none',
             }).done(function (imgData) {
            'color': 'inherit',
                var pages = imgData.query.pages;
            'text-decoration': 'none',
                var imageMap = {};
             'display': 'block'
               
        });
                for (var pageId in pages) {
 
                    var p = pages[pageId];
        var $stickyKapsayici = $('<div>', { 'id': 'kb-sticky-sidebar-toc' });
                    if (p.thumbnail && p.thumbnail.source) {
 
                        imageMap[p.title] = p.thumbnail.source;
        $stickyKapsayici.append($yeniBaslik).append($yeniIcerik);
        $target.after($stickyKapsayici);
 
        $('<style>').text('@media screen and (min-width: 1120px) { #citizen-toc, #mw-panel-toc { display: none !important; } }').appendTo('head');
    }
});
 
// ////// BASKI (PRINTER) TEMİZLİĞİ VE YAZARLAR LİSTESİ
(function () {
    window.onbeforeprint = function () {
        $('.citizen-page-actions, #citizen-share, #p-associated-pages, #ca-talk, #citizen-page-more-dropdown').hide();
        $('.printfooter, .post-content-footer, .citizen-footer__links, .catlinks, #catlinks, .page-tools').hide();
       
        $('#İlgili_Maddeler').parent().hide();
        $('#İlgili_Maddeler').parent().nextAll().hide();
       
        $('a, span, li, button, summary').filter(function() {
            var text = $(this).text().trim().toLowerCase();
            return text === 'alıntı' || text.includes('share') || text.includes('sitesinden') || text.includes('more actions');
        }).hide();
       
        $('a[href*="K%C4%B1z%C4%B1lba%C5%9F"], a[href*="Kaynak:"]').hide();
 
        if (!$('#baski-temiz-yazarlar').length) {
            var yazarIsimleri = [];
 
            $('#citizen-sidebar-yazarlar').find('a').each(function () {
                var txt = $(this).text().trim();
                if (txt && txt !== 'Yazarlar' && !txt.includes('hakkında') && txt.length > 2 && txt.length < 35) {
                    if (yazarIsimleri.indexOf(txt) === -1) {
                        yazarIsimleri.push(txt);
                     }
                     }
                 }
                 }
            });


                 var htmlOutput = '';
            if (yazarIsimleri.length > 0) {
                 var $yazarKutusu = $('<div>', { id: 'baski-temiz-yazarlar' });
                $yazarKutusu.append('<h3>Yazarlar</h3>');
                  
                  
                 items.forEach(function (item) {
                 var $liste = $('<ul>');
                     var pageTitle = item.title;
                $.each(yazarIsimleri, function (i, isim) {
                    var pageLink = mw.util.getUrl(pageTitle);
                     $liste.append('<li>' + isim + '</li>');
                    var imgUrl = imageMap[pageTitle];
                });
                $yazarKutusu.append($liste);
 
                $('.mw-parser-output').first().append($yazarKutusu);
            }
        }
    };
 
    window.onafterprint = function () {
        $('.citizen-page-actions, #citizen-share, #p-associated-pages, #ca-talk, #citizen-page-more-dropdown').show();
        $('.printfooter, .post-content-footer, .citizen-footer__links, .catlinks, #catlinks, .page-tools').show();
        $('#İlgili_Maddeler').parent().show();
        $('#İlgili_Maddeler').parent().nextAll().show();
       
        $('a, span, li, button, summary').filter(function() {
            var text = $(this).text().trim().toLowerCase();
            return text === 'alıntı' || text.includes('share') || text.includes('sitesinden') || text.includes('more actions');
        }).show();
       
        $('a[href*="K%C4%B1z%C4%B1lba%C5%9F"], a[href*="Kaynak:"]').show();
       
        $('#baski-temiz-yazarlar').remove();
    };
})();
 
// ////// LEAFLET WIKI HARİTASI
if ($('#leaflet-wiki-map').length > 0) {
    $('head').append('<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />');


                    htmlOutput += '<div class="wiki-recent-row">' +
    $.getScript('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js', function() {
                        '<div class="wiki-recent-text">' +
        setTimeout(function() {
                            '<div class="wiki-recent-title"><a href="' + pageLink + '">' + pageTitle + '</a></div>' +
           
                        '</div>' +
            var map = L.map('leaflet-wiki-map', {
                        '<div class="wiki-recent-img-wrapper">';
                attributionControl: false,
                   
                zoomControl: true
                    if (imgUrl) {
            }).setView([39.9, 35.2], 6);
                        htmlOutput += '<a href="' + pageLink + '"><img src="' + imgUrl + '" alt="' + pageTitle + '"></a>';
 
                     } else {
            var darkTileUrl = 'https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png';
                        // Eğer maddede görsel yoksa sitenin kendi logosunu veya şık boş bir kutu basar
            var lightTileUrl = 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png';
                        htmlOutput += '<a href="' + pageLink + '"><div class="wiki-recent-empty-thumb"></div></a>';
 
            var tileLayer = L.tileLayer('', { maxZoom: 19 }).addTo(map);
 
            function isDarkMode() {
                return $('html').hasClass('skin-theme-dark') ||
                      $('body').hasClass('dark-mode') ||
                      $('html').attr('data-theme') === 'dark' ||
                      window.matchMedia('(prefers-color-scheme: dark)').matches;
            }
 
            function updateMapTheme() {
                if (isDarkMode()) {
                     tileLayer.setUrl(darkTileUrl);
                } else {
                    tileLayer.setUrl(lightTileUrl);
                }
            }
 
            updateMapTheme();
 
            var observer = new MutationObserver(function(mutations) {
                mutations.forEach(function(mutation) {
                    if (mutation.attributeName === "class" || mutation.attributeName === "data-theme") {
                        updateMapTheme();
                     }
                     }
                   
                    htmlOutput += '</div></div>';
                 });
                 });
            });
            observer.observe(document.documentElement, { attributes: true });
            observer.observe(document.body, { attributes: true });
            var redIcon = L.divIcon({
                className: 'custom-map-marker',
                iconSize: [12, 12],
                iconAnchor: [6, 6]
            });
            $('.map-marker-data').each(function() {
                var lat = parseFloat($(this).data('lat'));
                var lng = parseFloat($(this).data('lng'));
                var title = $(this).data('title');
                var link = $(this).data('link');


                 $feedContainer.html(htmlOutput);
                 if (!isNaN(lat) && !isNaN(lng)) {
                    var popupContent = '<b style="font-size: 14px;">' + title + '</b><br>' +
                                      '<a href="' + link + '" style="color: #b30000; font-weight: bold; display: inline-block; margin-top: 5px;">Maddeyi Oku →</a>';
                   
                    L.marker([lat, lng], {icon: redIcon})
                    .addTo(map)
                    .bindPopup(popupContent);
                }
             });
             });
        }).fail(function () {
 
            $feedContainer.html('<div style="color:#888; padding:20px; text-align:center;">Akış yüklenirken bir sorun oluştu.</div>');
            setTimeout(function() {
         });
                map.invalidateSize();
            }, 300);
 
         }, 100);
     });
     });
});
}

13.59, 22 Temmuz 2026 itibarı ile sayfanın şu anki hâli

// ==========================================================================
// KIZILBASHICA JAVASCRIPT DOSYASI
// ==========================================================================

$(document).ready(function() {
    var ns = mw.config.get('wgNamespaceNumber');
    var pageName = mw.config.get('wgTitle');
    var baseUrl = mw.config.get('wgArticlePath') || '/wiki/$1';
    
    var urlParams = new URLSearchParams(window.location.search);
    var isEditing = urlParams.has('action') && (urlParams.get('action') === 'edit' || urlParams.get('action') === 'submit');

    // ////// SÖZLÜK MADDELERİ VE ALINTI BUTONU
    if (ns === 0) {
        var mainTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Tart%C4%B1%C5%9Fma:"], a[href*="Talk:"]');
        if (mainTalkLink.length > 0) {
            var citePageUrl = baseUrl.replace('$1', 'Kaynak:' + encodeURIComponent(pageName));
            
            mainTalkLink.replaceWith(
                '<a href="' + citePageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
                '<span class="citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes"></span> ' +
                '<span>Alıntı</span>' +
                '</a>'
            );
        }
    }
    
    // ////// KAYNAK AD ALANI AYARLARI
    if (ns === 3000) {
        var sourceTalkLink = $('#ca-talk a, .citizen-section-talk a, a[href*="Kaynak_tart%C4%B1%C5%9Fma:"]');
        if (sourceTalkLink.length > 0) {
            var mainPageUrl = baseUrl.replace('$1', encodeURIComponent(pageName));
            
            sourceTalkLink.replaceWith(
                '<a href="' + mainPageUrl + '" class="citizen-cdx-button--size-large cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet">' +
                '<span class="citizen-ui-icon mw-ui-icon-eye mw-ui-icon-wikimedia-eye"></span> ' +
                '<span>Oku</span>' +
                '</a>'
            );
        }

        if (!isEditing) {
            if ($('.noarticletext').length > 0 || $('.mw-noarticletext').length > 0 || mw.config.get('wgArticleId') === 0) {
                
                $('.noarticletext, .mw-noarticletext').hide();
                var container = $('#mw-content-text');
                container.html('<div id="loading-cite" style="color: var(--kb-text-sub); font-style: italic; padding: 10px;">Kaynak arayüzü yükleniyor...</div>');
                
                $.ajax({
                    url: mw.util.wikiScript('api'),
                    data: {
                        action: 'parse',
                        text: '{{AlıntıYap|madde=' + pageName + '}}',
                        contentmodel: 'wikitext',
                        format: 'json'
                    },
                    success: function(data) {
                        if (data && data.parse && data.parse.text) {
                            container.html(data.parse.text['*']);
                        }
                    }
                });
            }
        }
    }
});

// ////// KOMUT PALETİ TÜRKÇELEŞTİRME VE ZAR BUTONU
const observer = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
        const menuHeadings = document.querySelectorAll('.citizen-menu__heading');
        menuHeadings.forEach(heading => {
            if (heading.textContent.trim() === 'Last modified') heading.textContent = 'Son değişiklikler';
        });

        const palette = document.querySelector('.citizen-command-palette');
        if (palette) {
            const inputArea = palette.querySelector('.citizen-command-palette-header__input-area');
            const customBtnCheck = palette.querySelector('#citizen-custom-random-btn');
            
            if (inputArea && !customBtnCheck) {
                const randomBtn = document.createElement('div');
                randomBtn.id = 'citizen-custom-random-btn';
                randomBtn.title = 'Rastgele Sayfa Getir';
                randomBtn.innerHTML = '<span class="citizen-ui-icon mw-ui-icon-wikimedia-die"></span>';
                randomBtn.addEventListener('click', function() {
                    window.location.href = (mw.config.get('wgArticlePath') || '/wiki/$1').replace('$1', 'Özel:Rastgele');
                });
                inputArea.appendChild(randomBtn);
            }

            palette.querySelectorAll('*').forEach(el => {
                if (el.childNodes.length === 1 && el.textContent.trim() === 'Recent') el.textContent = 'Son Aramalar';
            });

            palette.querySelectorAll('[class*="badge"], [class*="item-badge"]').forEach(badge => {
                if (badge.textContent.trim() === 'Page') badge.innerHTML = 'Sayfa';
                else if (badge.textContent.trim() === 'Action') badge.innerHTML = 'Eylem';
            });

            palette.querySelectorAll('[class*="description"]').forEach(desc => {
                if (desc.textContent.trim() === 'Create or edit page') desc.textContent = 'Sayfa oluştur veya düzenle';
            });

            const note = palette.querySelector('[class*="footer-note"]');
            if (note) {
                if (note.innerHTML.includes('all commands')) note.innerHTML = 'Tüm komutlar için <code>/</code> yazın';
                else if (note.innerHTML.includes('namespace')) note.innerHTML = 'Ad alanlarında aramak için <code>:</code> yazın';
                else if (note.innerHTML.includes('for users')) note.innerHTML = 'Kullanıcıları aramak için <code>@</code> yazın';
                else if (note.innerHTML.includes('for templates')) note.innerHTML = 'Şablonları aramak için <code>{{</code> yazın';
            }

            palette.querySelectorAll('[class*="keyboard-hint"]').forEach(hint => {
                const label = hint.querySelector('[class*="label"]');
                if (label) {
                    var txt = label.textContent.trim();
                    if (txt === 'Select') label.textContent = 'Seç';
                    else if (txt === 'Navigate') label.textContent = 'Gezin';
                    else if (txt === 'Actions') label.textContent = 'Eylemler';
                    else if (txt === 'Close') label.textContent = 'Kapat';
                }
            });
        }
    });
});
observer.observe(document.body, { childList: true, subtree: true });

// ////// YAPIŞKAN BAŞLIK (STICKY HEADER) ALINTI BUTONU
mw.hook('wikipage.content').add(function() {
    var stickyTalkBtn = document.getElementById('ca-talk-sticky-header');
    if (stickyTalkBtn) {
        var iconSpan = stickyTalkBtn.querySelector('.citizen-ui-icon');
        if (iconSpan) {
            iconSpan.className = 'citizen-ui-icon mw-ui-icon-quotes mw-ui-icon-wikimedia-quotes';
        }
        
        var textSpan = stickyTalkBtn.querySelector('span:not(.citizen-ui-icon)');
        if (textSpan) {
            textSpan.textContent = 'Alıntı';
        }
    }
});

// ////// YAN MENÜ (DRAWER) İKONLARI
mw.hook('wikipage.content').add(function() {
    
    // 1. Dizin İkonu
    var dizinMaddesi = document.getElementById('n-Dizin');
    if (dizinMaddesi && !dizinMaddesi.querySelector('.citizen-ui-icon')) {
        var link = dizinMaddesi.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet';
            link.insertBefore(icon, link.firstChild);
        }
    }

    // 2. Kısaltmalar İkonu
    var kisaltmalar = document.getElementById('n-Kısaltmalar');
    if (kisaltmalar && !kisaltmalar.querySelector('.citizen-ui-icon')) {
        var link = kisaltmalar.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-recentChanges mw-ui-icon-wikimedia-recentChanges';
            link.insertBefore(icon, link.firstChild);
        }
    }

    // 3. Kılavuz İkonu
    var kilavuz = document.getElementById('n-Kılavuz');
    if (kilavuz && !kilavuz.querySelector('.citizen-ui-icon')) {
        var link = kilavuz.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-article mw-ui-icon-wikimedia-article';
            link.insertBefore(icon, link.firstChild);
        }
    }

    // 4. Ansiklopedi Hakkında İkonu
    var hakkinda = document.getElementById('n-Ansiklopedi-hakkında');
    if (hakkinda && !hakkinda.querySelector('.citizen-ui-icon')) {
        var link = hakkinda.querySelector('a');
        if (link) {
            var icon = document.createElement('span');
            icon.className = 'citizen-ui-icon mw-ui-icon-infoFilled mw-ui-icon-wikimedia-infoFilled';
            link.insertBefore(icon, link.firstChild);
        }
    }
});

// ////// YAZARLAR KARTI OLUŞTURMA
mw.hook('wikipage.content').add(function () {
    var $yazarKaynagi = $('#sayfa-yazarlari');
    var $target = $('#citizen-sidebar-lastmod');
    
    if (!$yazarKaynagi.length || !$target.length || $('#citizen-sidebar-yazarlar').length) {
        return;
    }

    var hamMetin = $yazarKaynagi.html();
    var satirlar = hamMetin.split(/<br\s*\/?>|\n/i);
    var gecerliYazarlar = [];

    satirlar.forEach(function (satir) {
        var duzMetin = satir.replace(/<\/?[^>]+(>|$)/g, "").trim();
        if (duzMetin !== "") {
            gecerliYazarlar.push(satir.trim());
        }
    });

    if (gecerliYazarlar.length > 0) {
        var baslikMetni = gecerliYazarlar.length > 1 ? 'Yazarlar' : 'Yazar';
        
        var $yazarKarti = $('<nav>', { 'id': 'citizen-sidebar-yazarlar', 'class': 'citizen-menu' });
        var $yazarBaslik = $('<div>', { 'class': 'citizen-menu__heading', 'text': baslikMetni });
        var $yazarIcerik = $('<div>', { 'class': 'citizen-menu__content' });
        var $ul = $('<ul>', { 'class': 'citizen-menu__content-list' });

        gecerliYazarlar.forEach(function (yazar) {
            var $li = $('<li>', { 'class': 'mw-list-item' });
            var $tempDiv = $('<div>').html(yazar);
            var $orijinalLink = $tempDiv.find('a').first();
            var $linkElementi;

            if ($orijinalLink.length > 0) {
                $linkElementi = $orijinalLink.clone();
                var metin = $linkElementi.text();
                $linkElementi.html('')
                    .append($('<span>', { 'class': 'citizen-ui-icon mw-ui-icon-history mw-ui-icon-wikimedia-userAvatar' }))
                    .append($('<span>').text(metin));
            } else {
                $linkElementi = $('<a>', { 'href': 'javascript:void(0);', 'style': 'cursor: default; color: inherit;' })
                    .append($('<span>', { 'class': 'citizen-ui-icon mw-ui-icon-history mw-ui-icon-wikimedia-userAvatar' }))
                    .append($('<span>').html(yazar));
            }

            $li.append($linkElementi);
            $ul.append($li);
        });

        $yazarIcerik.append($ul);
        $yazarKarti.append($yazarBaslik).append($yazarIcerik);
        
        $target.after($yazarKarti);
    }
});

// ////// TOC (İÇİNDEKİLER) AYARI VE GARİP BUTON TAMİRİ
mw.hook('wikipage.content').add(function () {
    var $orijinalToc = $('#citizen-toc').length ? $('#citizen-toc') : $('#mw-panel-toc');
    var $target = $('#citizen-sidebar-yazarlar').length ? $('#citizen-sidebar-yazarlar') : $('#citizen-sidebar-lastmod');

    if ($orijinalToc.length && $target.length && !$('#kb-duz-toc-baslik').length) {
        
        var cssStilleri = `
            @media screen and (min-width: 1120px) {
                #kb-sticky-sidebar-toc {
                    position: sticky !important;
                    top: 5rem !important;
                    z-index: 10 !important;
                    display: block !important;
                }
            }
            @media screen and (max-width: 1119px) {
                #kb-sticky-sidebar-toc {
                    display: none !important;
                }
                #citizen-toc, #mw-panel-toc {
                    display: block !important;
                    visibility: visible !important;
                    opacity: 1 !important;
                }
            }
        `;
        $('<style>').text(cssStilleri).appendTo('head');
        
        var $yeniBaslik = $('<div>', {
            'id': 'kb-duz-toc-baslik',
            'class': 'citizen-menu__heading',
            'text': $orijinalToc.find('.citizen-menu__heading').text().trim()
        });

        var $yeniIcerik = $orijinalToc.find('.citizen-toc-contents').clone(true);

        // *** GARİP BUTONU SİLEN DÜZELTME ***
        $yeniIcerik.find('button, .citizen-toc-toggle, .mw-ui-icon-wikimedia-chevron-down, .mw-ui-icon-wikimedia-chevron-up').remove();

        $yeniIcerik.find('.citizen-toc-link').css({
            'font-size': '0.8rem',
            'background': 'transparent',
            'background-color': 'transparent',
            'box-shadow': 'none',
            'color': 'inherit',
            'text-decoration': 'none',
            'display': 'block'
        });

        var $stickyKapsayici = $('<div>', { 'id': 'kb-sticky-sidebar-toc' });

        $stickyKapsayici.append($yeniBaslik).append($yeniIcerik);
        $target.after($stickyKapsayici);

        $('<style>').text('@media screen and (min-width: 1120px) { #citizen-toc, #mw-panel-toc { display: none !important; } }').appendTo('head');
    }
});

// ////// BASKI (PRINTER) TEMİZLİĞİ VE YAZARLAR LİSTESİ
(function () {
    window.onbeforeprint = function () {
        $('.citizen-page-actions, #citizen-share, #p-associated-pages, #ca-talk, #citizen-page-more-dropdown').hide();
        $('.printfooter, .post-content-footer, .citizen-footer__links, .catlinks, #catlinks, .page-tools').hide();
        
        $('#İlgili_Maddeler').parent().hide(); 
        $('#İlgili_Maddeler').parent().nextAll().hide();
        
        $('a, span, li, button, summary').filter(function() {
            var text = $(this).text().trim().toLowerCase();
            return text === 'alıntı' || text.includes('share') || text.includes('sitesinden') || text.includes('more actions');
        }).hide();
        
        $('a[href*="K%C4%B1z%C4%B1lba%C5%9F"], a[href*="Kaynak:"]').hide();

        if (!$('#baski-temiz-yazarlar').length) {
            var yazarIsimleri = [];

            $('#citizen-sidebar-yazarlar').find('a').each(function () {
                var txt = $(this).text().trim();
                if (txt && txt !== 'Yazarlar' && !txt.includes('hakkında') && txt.length > 2 && txt.length < 35) {
                    if (yazarIsimleri.indexOf(txt) === -1) {
                        yazarIsimleri.push(txt);
                    }
                }
            });

            if (yazarIsimleri.length > 0) {
                var $yazarKutusu = $('<div>', { id: 'baski-temiz-yazarlar' });
                $yazarKutusu.append('<h3>Yazarlar</h3>');
                
                var $liste = $('<ul>');
                $.each(yazarIsimleri, function (i, isim) {
                    $liste.append('<li>' + isim + '</li>');
                });
                $yazarKutusu.append($liste);

                $('.mw-parser-output').first().append($yazarKutusu);
            }
        }
    };

    window.onafterprint = function () {
        $('.citizen-page-actions, #citizen-share, #p-associated-pages, #ca-talk, #citizen-page-more-dropdown').show();
        $('.printfooter, .post-content-footer, .citizen-footer__links, .catlinks, #catlinks, .page-tools').show();
        $('#İlgili_Maddeler').parent().show();
        $('#İlgili_Maddeler').parent().nextAll().show();
        
        $('a, span, li, button, summary').filter(function() {
            var text = $(this).text().trim().toLowerCase();
            return text === 'alıntı' || text.includes('share') || text.includes('sitesinden') || text.includes('more actions');
        }).show();
        
        $('a[href*="K%C4%B1z%C4%B1lba%C5%9F"], a[href*="Kaynak:"]').show();
        
        $('#baski-temiz-yazarlar').remove();
    };
})();

// ////// LEAFLET WIKI HARİTASI
if ($('#leaflet-wiki-map').length > 0) {
    $('head').append('<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />');

    $.getScript('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js', function() {
        setTimeout(function() {
            
            var map = L.map('leaflet-wiki-map', {
                attributionControl: false,
                zoomControl: true
            }).setView([39.9, 35.2], 6);

            var darkTileUrl = 'https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png';
            var lightTileUrl = 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png';

            var tileLayer = L.tileLayer('', { maxZoom: 19 }).addTo(map);

            function isDarkMode() {
                return $('html').hasClass('skin-theme-dark') || 
                       $('body').hasClass('dark-mode') || 
                       $('html').attr('data-theme') === 'dark' || 
                       window.matchMedia('(prefers-color-scheme: dark)').matches;
            }

            function updateMapTheme() {
                if (isDarkMode()) {
                    tileLayer.setUrl(darkTileUrl);
                } else {
                    tileLayer.setUrl(lightTileUrl);
                }
            }

            updateMapTheme();

            var observer = new MutationObserver(function(mutations) {
                mutations.forEach(function(mutation) {
                    if (mutation.attributeName === "class" || mutation.attributeName === "data-theme") {
                        updateMapTheme();
                    }
                });
            });

            observer.observe(document.documentElement, { attributes: true });
            observer.observe(document.body, { attributes: true });

            var redIcon = L.divIcon({
                className: 'custom-map-marker',
                iconSize: [12, 12],
                iconAnchor: [6, 6]
            });

            $('.map-marker-data').each(function() {
                var lat = parseFloat($(this).data('lat'));
                var lng = parseFloat($(this).data('lng'));
                var title = $(this).data('title');
                var link = $(this).data('link');

                if (!isNaN(lat) && !isNaN(lng)) {
                    var popupContent = '<b style="font-size: 14px;">' + title + '</b><br>' +
                                       '<a href="' + link + '" style="color: #b30000; font-weight: bold; display: inline-block; margin-top: 5px;">Maddeyi Oku →</a>';
                    
                    L.marker([lat, lng], {icon: redIcon})
                     .addTo(map)
                     .bindPopup(popupContent);
                }
            });

            setTimeout(function() {
                map.invalidateSize();
            }, 300);

        }, 100);
    });
}