MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

MediaWiki:Addon-loadprism.js

来自MCBBS Wiki
Salt lovely留言 | 贡献2020年11月25日 (三) 23:49的版本 (忘了添加CSS)
跳到导航 跳到搜索

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
(function () {
    //if (document.readyState != 'complete') { return }
    var thisHref = window.location.href, preList = document.querySelectorAll('pre:not([done])'), el, cs = console
    cs.log(`[pri` + `sm.` + `js\u8F85\u52A9\u4EE3\u7801]: \u4EE3\u7801\u4F5C\u8005\uFF1ASa` + `lt lov` + `ely\uFF0C\u4EE5CC BY` + `-NC` + `-SA ` + `4.0\u534F\u8BAE\u5206\u53D1\uFF0C\u8F6C\u8F7D\u65F6\u5FC5\u987B\u6CE8\u660E\u4F5C\u8005\u540D\u5B57\u201CSa` + `lt lov` + `ely\u201D\uFF0C\u5FC5\u987B\u6CE8\u660E\u4E0D\u5F97\u5546\u7528\u4E14\u4EE5\u76F8\u540C\u7684\u534F\u8BAE\u5206\u53D1`)
    for (var i = 0; i < preList.length; i++) {
        el = preList[i]
        el.classList.add('line-numbers')
        el.innerHTML = '<code class="language-' + langGuess(el) + '">' + el.innerHTML + '</code>'
        el.setAttribute('done', '')
    }
    loadPrism('prism')
    loadPrism('prism-plugins')
    loadPrism('prism-lang-plus1')
    loadPrism('prism-lang-plus2')
    mw.loader.load('//mcbbs-wiki.cn/index.php?title=MediaWiki:Addon-prism.css&action=raw&ctype=text/css','text/css')
    function langGuess(el) {
        var pel = el.parentNode, i
        var langList = [
            'css', 'scss', 'sass', 'less',
            'js', 'javascrip', 'ts', 'typescript',
            'java', 'kotlin',
            'vb', 'basic', 'vbnet',
            'batch', 'powershell',
            'python', 'py', 'lua', 'sql',
            'c', 'cpp',
            'bbcode', 'markdown', 'json',
            'php', 'asp', 'html',
        ]
        for (i = 0; i < langList.length; i++) {
            if (pel.classList.contains(langList[i])) { return langList[i] }
        }
        for (i = 0; i < langList.length; i++) {
            if (thisHref.indexOf('.' + langList[i]) != -1) { return langList[i] }
        }
        var langEigen = [
            // { lang: '', eig: '' },
            { lang: 'wiki', eig: /(\n|^)=+\s?[^=]+\s?=+(\n|$)/ }, { lang: 'wiki', eig: /\[\[(分类|category):[^\]]+\]\]/i }, { lang: 'wiki', eig: /\{\{(color|font)\|[^\}]+\}\}/i },
            { lang: 'cpp', eig: 'cout<<' }, { lang: 'cpp', eig: 'cout <<' }, { lang: 'cpp', eig: '#include <iostream>' },
            { lang: 'c', eig: '#include' }, { lang: 'c', eig: '#define' },
            { lang: 'vbnet', eig: 'Console.WriteLine' },
            { lang: 'vb', eig: 'As Integer' }, { lang: 'vb', eig: 'As String' }, { lang: 'vb', eig: 'End Function' }, { lang: 'vb', eig: 'End If' },
            { lang: 'java', eig: 'System.out.print' }, { lang: 'java', eig: 'public class' },
            { lang: 'ts', eig: ': number' }, { lang: 'ts', eig: ':number' }, { lang: 'ts', eig: ': string' }, { lang: 'ts', eig: ':string' },
            { lang: 'go', eig: 'fmt.Println' },
            { lang: 'kotlin', eig: 'fun main(' },
            { lang: 'php', eig: '<?php' },
            { lang: 'bbcode', eig: '[/color]' }, { lang: 'bbcode', eig: '[/size]' },
        ]
        for (i = 0; i < langEigen.length; i++) {
            if (typeof langEigen[i].eig == 'string') {
                if (el.textContent.indexOf(langEigen[i].eig) != -1) { return langEigen[i].lang }
            } else if (langEigen[i].eig instanceof RegExp) {
                if (langEigen[i].eig.test(el.textContent)) { return langEigen[i].lang }
            }
        }
        return 'js'
    }
    function loadPrism(url) {
        var s = document.createElement('script')
        s.src = '//mcbbs-wiki.cn/index.php?title=MediaWiki:Addon-' + url + '.js&action=raw&ctype=text/javascript'
        document.head.appendChild(s)
    }
})()