跳转到内容

MediaWiki:Common.js

来自WBI WiKi

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
  • Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
// ARG 互动终端 - 在指定页面显示输入框,匹配关键词展示剧情
$(function() {
    // ★ 把这里改成你要放 ARG 交互的页面名,比如 '终端' 或 '谜题'
    var targetPage = '终端';

    if (mw.config.get('wgPageName') === targetPage) {
        var html = '<div style="margin:1em 0; padding:1em; border:1px solid #333; background:#111; color:#0f0; font-family: monospace;">' +
                   '<div style="font-size:1.2em; margin-bottom:0.5em;">> 正在监听... 输入你的指令:</div>' +
                   '<input type="text" id="argInput" placeholder="输入关键词或代码..." style="width:300px; padding:5px; background:#000; color:#0f0; border:1px solid #0f0; font-family: monospace;"> ' +
                   '<button id="argBtn" style="padding:5px 15px; background:#000; color:#0f0; border:1px solid #0f0; cursor:pointer;">执行</button>' +
                   '<div id="argOutput" style="margin-top:1em; padding:0.8em; background:#000; border-left:3px solid #0f0; min-height:2em; white-space: pre-wrap;"></div>' +
                   '</div>';

        $('#bodyContent').prepend(html);

        // 点击按钮或回车触发查询
        function runQuery() {
            var input = $('#argInput').val().trim().toLowerCase();
            var output = '';
            // ↓↓↓ 这里就是你的 ARG 剧情库,自由增减 ↓↓↓
            switch(input) {
                case '血月':
                    output = '记录显示:上一次血月出现在2037年,所有观测者均报告听到低频嗡鸣。\n位置:▇▇▇▇已加密,需要二级权限。';
                    break;
                case '密码':
                case '密码是什么':
                    output = '密码并非数字。观察你周围的颜色,找出“不存在”的那一种。';
                    break;
                case '你是谁':
                    output = '我是被留下的一段回音。我的制造者已于2061年失踪,最后坐标:未知。';
                    break;
                case '开门':
                    output = '门锁需要物理钥匙。钥匙藏在你能找到却永远不会到达的地方。';
                    break;
                case '时间':
                    output = '这里的时间以剩余秒数计算。剩余:████ 秒。';
                    break;
                case 'exit':
                case '退出':
                    output = '不能退出。你已在系统中。但系统可以冻结 —— 等待。';
                    break;
                // 添上更多神秘关键词
                default:
                    output = '未识别的指令:“' + input + '”。系统没有回应。可能词汇不在数据库中。';
            }
            $('#argOutput').text(output);
        }

        $('#argBtn').on('click', runQuery);
        $('#argInput').on('keypress', function(e) {
            if (e.which === 13) {
                runQuery();
            }
        });
    }
});

// =============================================
// 侧载世界观自动标记系统(前缀识别版)
// =============================================
$(function () {
    var pageName = mw.config.get('wgPageName');

    // ★ 把你所有侧载世界观的前缀列在这里(注意大小写)
    var seedPrefixes = ['拉格纳尔:','拉格纳尔',];

    // 检查页面标题是否以任意一个前缀开头
    var matchedPrefix = null;
    for (var i = 0; i < seedPrefixes.length; i++) {
        if (pageName.indexOf(seedPrefixes[i]) === 0) {
            matchedPrefix = seedPrefixes[i];
            break;
        }
    }

    if (matchedPrefix) {
        // 提取世界观名称(去掉末尾的冒号)
        var worldName = matchedPrefix.replace(':', '');

// 1. 底部侧载标识
    var badge = '<div style="margin-top:1.5em; padding:0.5em 1em; border-left:3px solid #8a9a7d; background:var(--bg-surface); font-size:0.85em; color:#8a9a7d;">' +
            '⚠ 本条目为<strong>侧载档案</strong> · 源世界观:' + worldName + ' · 通过<a href="/wiki/信息播种协议">信息播种协议</a>注入 · 不代表碎波研官方立场' +
            '</div>';
    $('#mw-content-text').prepend(badge);
        // 2. 自动添加分类链接(侧载世界 + 具体世界观)
        var catLinks = '<div class="catlinks" style="margin-top:1em;">' +
                       '<span>分类:</span>' +
                       '<a href="/wiki/Category:侧载世界">侧载世界</a> · ' +
                       '<a href="/wiki/Category:' + worldName + '世界观">' + worldName + '世界观</a>' +
                       '</div>';
        $('#mw-content-text').append(catLinks);

        // 3. 侧载页面标题改为灰绿色
        $('#firstHeading').css('color', '#8a9a7d');

        // (可选)自动插入侧载信息框
        // 如果想让侧载页面也自动出现信息框,可以把下面这行取消注释
        /*
        var infobox = '<table class="wikitable" style="float:right; margin-left:1.5em; width:260px; font-size:0.85em; border-left:3px solid #8a9a7d;">' +
                      '<tr><th colspan="2" style="color:#8a9a7d;">侧载档案</th></tr>' +
                      '<tr><td>源世界观</td><td>' + worldName + '</td></tr>' +
                      '<tr><td>注入方式</td><td><a href="/wiki/信息播种协议">ISP</a></td></tr>' +
                      '</table>';
        $('#mw-content-text').prepend(infobox);
        */
    }
});