Prismatic 插件 Highlight.js 添加行号显示

分享
Prismatic 插件 Highlight.js 添加行号显示

首先你需要修改插件Prismatic的highlight-core.js文件,具体路径如下:

网站根目录/wp-content/plugins/prismatic/lib/highlight/js/highlight-core.js

编辑highlight-core.js文件,在代码最底部加入以下代码并保存: (注意备份源文件)

(function (w, d) {
    w.hljsln = {
        initLineNumbersOnLoad: initLineNumbersOnLoad,
        addLineNumbersForCode: addLineNumbersForCode
    };

    function initLineNumbersOnLoad() {
        if (d.readyState === 'interactive' || d.readyState === 'complete') {
            documentReady();
        } else {
            w.addEventListener('DOMContentLoaded', function () {
                documentReady();
            });
        }
    }

    function addLineNumbersForCode(html) {
        var num = 1;
        if (/\r|\n$/.test(html)) {
            html += '<span class="ln-eof"></span>';
        }
        html = html.replace(/\r\n|\r|\n/g, function (a) {
            num++;
            var text = ('  ' + num).substr(-3);
            return a + '<span class="ln-num" data-num="' + text + '"></span>';
        });
        html = '<span class="ln-num" data-num="  1"></span>' + html;
        html = '<span class="ln-bg"></span>' + html;
        return html;
    }

    function documentReady() {
        var elements = d.querySelectorAll('pre code');
        for (var i = 0; i < elements.length; i++) {
            if (elements[i].className.indexOf('hljsln') == -1) {
                var html = elements[i].innerHTML;
                html = addLineNumbersForCode(html);
                elements[i].innerHTML = html;
                elements[i].className += ' hljsln';
            }
        }
    }
}(window, document));

编辑完以上代码文件后需要进入插件设置,highlight设置项里的init script中添加以下代码初始化行号显示:

hljs.highlightAll();
hljsln.initLineNumbersOnLoad();    //此行为需要添加的代码

添加完以后还需要进入Advanced Settings 在Custom CSS中加入以下css样式:

pre {
    position: relative;
}
.hljsln {
    display: block;
    margin-left: 2.4em;
    padding-left: 0.7em !important;
}
.hljsln::-webkit-scrollbar {
    height: 15px;
}
.hljsln::-webkit-scrollbar-thumb {
    background: #666;
}
.hljsln::-webkit-scrollbar-thumb:hover {
    background: #797979;
}
.hljsln::-webkit-scrollbar-thumb:active {
    background: #949494;
}
.hljsln .ln-bg {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 2.4em;
    height: 100%;
    background: #333;
}
.hljsln .ln-num {
    position: absolute;
    z-index: 2;
    left: 0;
    width: 2.4em;
    height: 1em;
    text-align: center;
    display: inline-block;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.hljsln .ln-num::before {
    color: #777;
    font-style: normal;
    font-weight: normal;
    content: attr(data-num);
}
.hljsln .ln-eof {
    display: inline-block;
}

保存后刷新网页缓存即可显示行号

自用css备份:

pre {
    position: relative;
}
.hljsln {
    display: block;
    margin-left: 2.4em;
    padding-left: 0.7em !important;
}
.hljsln::-webkit-scrollbar {
    height: 15px;
}
.hljsln::-webkit-scrollbar-thumb {
    background: #666;
}
.hljsln::-webkit-scrollbar-thumb:hover {
    background: #797979;
}
.hljsln::-webkit-scrollbar-thumb:active {
    background: #949494;
}
.hljsln .ln-bg {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 2.4em;
    height: 100%;
    background: #1e1e26;
}
.hljsln .ln-num {
    position: absolute;
    z-index: 2;
    left: 0;
    width: 2.4em;
    height: 1em;
    text-align: center;
    display: inline-block;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.hljsln .ln-num::before {
    color: #e5e6e6;
    font-style: normal;
    font-weight: normal;
    content: attr(data-num);
}
.hljsln .ln-eof {
    display: inline-block;
}

阅读更多

Windows11 24h2 显示器手动校色后正确生效方法

Windows11 24h2 显示器手动校色后正确生效方法

1.正常使用校色仪自带软件或displaycal生成的校色文件 嵌入后不会正确生效,可使用MHC2GEN来对校色文件进行转换,转换成可以生效的现代校色文件。 2.工具来源地址为github:https://github.com/dantmnf/MHC2 3.使用方法: 注:以下均为powershell或cmd执行,执行文件从上述地址中下载 MHC2Gen.zip文件 示例1:为SDR自动色彩管理创建配置文件 MHC2Gen.exe sdr-acm --calibrate-transfer "C:\...\DisplayCAL\存储路径\...\校色文件.icm" "MODEL SDR ACM.icm" 后面的第一个路径为需要转换的源文件路径,后面的为输出路径,默认只输入文件名则只在mhc2gen路径下创建 示例2:sRGB proofing / clamp / emulation in SDR

By asumi233
qnap 使用 acme.sh ssl 证书

qnap 使用 acme.sh ssl 证书

提前申明/share 目录是共享文件夹的目录 记得提前创建好共享文件夹 /share/共享文件夹名 1.首先安装 acme.sh 配置环境变量 安装的位置 export LE_WORKING_DIR=/share/acme-ssl/.acme.sh 安装 记得把邮件地址替换成你自己的 curl https://get.acme.sh | sh -s email=my@example.com 安装完以后创建一个脚本 后面需要用到 这个脚本的内容是帮助你替换 ssl 以及重启服务 #!/bin/bash DN=$1 cat $DN.key $DN.cer ca.cer

By asumi233