MediaWiki:Gadget-code-prettify.js

H萌娘,万物皆可H的百科全书!
imported>=海豚=2021年3月27日 (六) 22:42的版本
跳到导航 跳到搜索

注意:这类代码页面在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

(function($, mw) {
    if (mw.config.get('wgPageName').match(/\.js$/)) $('.mw-code').addClass('prettyprint linenums lang-js');
    if (mw.config.get('wgPageName').match(/\.css$/)) $('.mw-code').addClass('prettyprint linenums lang-css');
    var acceptsLangs = {
        "js": "js",
        "javascript": "js",
        "css": "css",
        "html": "html",
        "Scribunto": "lua"
    }
    var wgPageContentModel = mw.config.get("wgPageContentModel");
    if (wgPageContentModel in acceptsLangs) $('.mw-code').addClass('prettyprint linenums lang-' + acceptsLangs[wgPageContentModel]);
    $('pre[lang]').each(function() {
        var self = $(this);
        var lang = self.attr("lang").toLowerCase();
        if (lang in acceptsLangs) {
            self.addClass("prettyprint linenums lang-" + acceptsLangs[lang]);
        }
    });
    if ($('.prettyprint').length > 0) {
        // mw.loader.load('MediaWiki:Gadget-code-prettify.css', 'text/css');
        $.ajax({
            url: "//zh.moegirl.org/index.php?title=MediaWiki:Gadget-code-prettify-core.js&action=raw&ctype=text/javascript",
            dataType: 'script',
            cache: true,
            success: function() {
                prettyPrint();
                if (mw.config.get('wgPageName').match(/\.(js|css)$/)) {
                    $(window).on("hashchange", function() {
                        mw.loader.using("mw.Uri").then(function() {
                            var frag = new mw.Uri().fragment;
                            if (/^L\d+$/.test(frag)) {
                                var firstCode = $(".prettyprint.prettyprinted > .linenums").first().children().eq(+frag.substring(1) - 1);
                                if (firstCode[0]) {
                                    $('html, body').animate({
                                        scrollTop: firstCode.offset().top,
                                    });
                                }
                            }
                        });
                    });
                    $(window).trigger("hashchange");
                }
            }
        });
    }
})(jQuery, mediaWiki);