bathome 代码高亮

将 bathome 的代码块使用 highlight.js 高亮

目前为 2019-11-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         bathome 代码高亮
// @namespace    aloxaf_bat
// @version      0.0.1
// @description  将 bathome 的代码块使用 highlight.js 高亮
// @author       aloxaf
// @include      /https?://[^.]+.bathome.net/
// @run-at       document-start
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/highlight.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/dos.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/vbscript.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/powershell.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/javascript.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/perl.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/rust.min.js
// @require      https://cdn.bootcss.com/highlight.js/9.15.10/languages/python.min.js
// @require      https://cdn.bootcss.com/highlightjs-line-numbers.js/2.7.0/highlightjs-line-numbers.min.js
// ==/UserScript==

/* jshint esversion: 6 */

document.addEventListener("DOMContentLoaded", function(event) {
    'use strict';
    function extract_text(codeblock) {
        let result = document.evaluate('.//li/text()', codeblock, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
        let node = result.iterateNext();
        let str = '';
        while (node) {
            str += node.data;
            node = result.iterateNext();
        }
        return str;
    }

    let codeblocks = document.getElementsByTagName('pre');
    for (let codeblock of codeblocks) {
        let text = extract_text(codeblock);
        codeblock.innerHTML=`<code>${text}</code>`;
        codeblock.classList.remove('blockcode');
    }

    for (let codeblock of document.getElementsByTagName('code')) {
        hljs.highlightBlock(codeblock);
        hljs.lineNumbersBlock(codeblock);
    }

});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址