打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
弃权者留言 | 贡献2026年5月8日 (五) 21:12的版本

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */

// 使用 mw.hook 监听内容变化,兼容 Citizen 的无刷新加载
mw.hook('wikipage.content').add(function($content) {

    //强制唤醒折叠元素 (解决导航栏卡住、全展开问题)
    mw.loader.using('jquery.makeCollapsible').then(function () {
        // 让页面里所有的 .mw-collapsible 重新活过来
        $content.find('.mw-collapsible').makeCollapsible();
    });

    
    // 2. 萌百风格 Tabs 自动转换脚本
    // ==========================================
    // 注意这里把原来的 $('.Tabs') 改成了 $content.find('.Tabs')
    $content.find('.Tabs').each(function() {
        var $tabsContainer = $(this);
        
        // 1. 检查是否已经初始化过
        if ($tabsContainer.hasClass('tabs-initialized')) return;

        // 2. 提取所有的标签和内容
        var $tabItems = $tabsContainer.find('> .Tab');
        if ($tabItems.length === 0) return;

        // 3. 创建标准的标签栏和内容容器
        var $labelWrapper = $('<div class="TabLabel"></div>');
        var $contentWrapper = $('<div class="TabContent"></div>');

        $tabItems.each(function(index) {
            var $item = $(this);
            var $label = $item.find('> .TabLabelText');
            var $content = $item.find('> .TabContentText');

            // 给第一个设为选中
            if (index === 0) {
                $label.addClass('selected');
                $content.addClass('selected');
            }

            // 绑定点击事件
            $label.on('click', function() {
                $labelWrapper.find('.TabLabelText').removeClass('selected');
                $contentWrapper.find('.TabContentText').removeClass('selected');
                $(this).addClass('selected');
                $content.addClass('selected');
            });

            $labelWrapper.append($label);
            $contentWrapper.append($content);
        });

        // 清空原有的“散装”内容,插入标准结构
        $tabsContainer.empty().append($labelWrapper).append($contentWrapper).addClass('tabs-initialized');
    });

});

/* 导航胶囊互斥逻辑:确保同一时间只有一个面板展开 */
mw.hook('wikipage.content').add(function($content) {
    // 监听所有带有 .nav-pill-btn 类的点击
    $content.find('.nav-pill-btn').on('click', function() {
        var $clicked = $(this);
        // 使用正则提取编号 (例如 mw-customtoggle-game1 -> 1)
        var match = $clicked.attr('class').match(/mw-customtoggle-game(\d+)/);
        if (!match) return;
        
        var currentId = match[1];
        var $myContent = $('#mw-customcollapsible-game' + currentId); // 修正:此处使用 + 拼接

        // 如果我们正准备打开这个面板 (它目前带有折叠类 mw-collapsed)
        if ($myContent.hasClass('mw-collapsed')) {
            // 找到所有其他的导航内容面板
            $('.nav-pill-content').not($myContent).each(function() {
                var $other = $(this);
                // 如果发现某个面板不是折叠状态,则模拟点击对应的按钮让其收回
                if (!$other.hasClass('mw-collapsed')) {
                    var otherNum = $other.attr('id').replace('mw-customcollapsible-game', '');
                    $('.mw-customtoggle-game' + otherNum).click();
                }
            });
        }
    });
});

$(function() {
    const targetId = '历史原型';

    mw.hook('wikipage.content').add(function() {
        const $h2 = $('#' + $.escapeSelector(targetId));
        
        if ($h2.length > 0) {
            const $headingContainer = $h2.closest('.citizen-section-heading');
            const $sectionContent = $headingContainer.next('section.citizen-section');

            if ($sectionContent.length > 0) {
                $sectionContent.attr('hidden', 'until-found');
                
                $headingContainer.addClass('citizen-section-heading--collapsed');
            }
        }
    });
});