您现在的位置是:首页 > 点滴分享 > 经验分享 网站首页点滴分享
highlight.js 插件添加行号
- 经验分享
- 2019年3月18日 23:41
- 3729已阅读
- 21
本博客使用的代码高亮工具为highlight.js,但是highlight.js不支持行号显示。默认效果如下:
看起来虽然不是很影响,但是在其他站几乎都是带有行号的,而且看起来也比较舒服,于是就打算添加一下行号看起来虽然不是很影响,但是在其他站几乎都是带有行号的,而且看起来也比较舒服,于是就打算添加一下行号。
在搜索之后,发现了已经有大佬实现了该功能,在此记录一下。
具体实现方法如下: 1. JS代码,在highlight.js之外添加以下js代码
$("code").each(function(){
$(this).html("<ul><li>" + $(this).html().replace(/\n/g,"\n</li><li>") +"\n</li></ul>");
});
- 修改css文件,为行号添加样式(此处为vs.css)
.hljs {
border: 0;
font-family: "Consulas", "Courier New", Courier, mono, serif;
font-size: 12px;
background: #eee !important;
display: block;
padding: 1px;
margin: 0;
width: 100%;
font-weight: 200;
color: #333;
white-space: pre-wrap
}
.hljs ul {
list-style: decimal;
background-color: #fff;
margin: 0px 0px 0 40px !important;
padding: 0px;
}
.hljs ul li {
list-style: decimal-leading-zero;
border-left: 1px solid #ddd !important;
background: #fff;
padding: 5px!important;
margin: 0 !important;
line-height: 14px;
word-break: break-all;
word-wrap: break-word;
}
.hljs ul li:nth-of-type(even) {
background-color: #fcfcfc;
color: inherit;
}
就这样就可以了,效果如下:
原文链接>>>highlight.js 增加行数
##################更新节点#######################
发现上述代码的一个bug,就是当我们使用markdown的 ``来包括一些简短的code时,也会被分割,即下面这种结果:
解决方法:
将上述分割代码中的$(“code”)
改为$(“pre code”)
就好了。
上面的代码的问题在于所有的由<code></code>
标签包裹的全部会被分割,但是我们需要显示行号的只有包含在<pre></pre>
标签里面的<code></code>
,所以像上面那样改一下,问题就解决了。最终结果如下: