Highlight.js语法突出显示

正如我在这个博客开始之前所说的最小可行产品,因此我在几个小时内就开始运行了。这种方法在初始推动之后会减慢你的速度。最新的例子是要提供语法高亮的代码片段。

规格由于使用静态网站生成器,我的狩猎的开始立即产生了一些障碍。首先,我认为不用说,服务器端编程是一个很明显的总不停。第二,像课程或ids这样的具体标记将会非常棘手,因为使用markdown来创建我的文章。

Gripes当看到我真正臭名昭着的是,它的血腥难以找到一个简单的解决方案!这些产品通常是非常全面的,而且在个人看来,超过我将花更多的时间来修剪脂肪,而不是从头开始编码。说如果我的需要是一个完整的花式裤子,那么你不能错过其中的一些。

SyntaxHighlighter的
GeSHi - 通用语法荧光笔
Google Code Prettify
Lighter.js(用MooTools编写)
如果你知道任何一个真的应该提到让我知道。

Highlight.js在刚刚(约20分钟)的硬核谷歌之后,我发现了highlight.js。这个图书馆会高兴地浏览页面,寻找任何pre>code页面元素,并且在应用相关的格式之前,不用担心会尝试检测编程语言(可以处理它的是54!)。更好的是,着色和突出显示完全是css驱动的,它们共有26个主要功能,包括与Google Code,Github和XCode的风格相匹配的选择。将脚本初始化为一个班轮。

hljs.initHighlightingOnLoad();
行号这个图书馆的一个遗漏是行编号,尽管这是一个贡献者努力添加它们所发现的事情。我喜欢行号,也许只是眼睛糖果,但我可以看到一天,我想要你们指向第33行,没有’em’填充。那么我该怎么做,但是要快速点击jQuery来做我的出价。下面显示的行号使用非常的脚本(如何非常元!)是我的快速的n代码来完成工作。

//numbering for pre>code blocks
$(function(){
$('pre code').each(function(){
var lines = $(this).text().split('\n').length - 1;
var $numbering = $('<ul/>').addClass('pre-numbering');
$(this)
.addClass('has-numbering')
.parent()
.append($numbering);
for(i=1;i<=lines;i++){
$numbering.append($('<li/>').text(i));
}
});
});

这真的很简单,它是通过搜索代码块开始的$(‘pre code’)。然后,通过将内容分成新行,\n我们可以得到总行数。最后,我们通过建立与列表项的列表contianing号1 lines和结束标记之间添加它和。用适当的css干预来填充几个类,使列表与代码的左边缘一致。

pre {
position: relative;
margin-bottom: 24px;
border-radius: 3px;
border: 1px solid #C3CCD0;
background: #FFF;
overflow: hidden;
} code {
display: block;
padding: 12px 24px;
overflow-y: auto;
font-weight: 300;
font-family: Menlo, monospace;
font-size: 0.8em;
} code.has-numbering {
margin-left: 21px;
} .pre-numbering {
position: absolute;
top: 0;
left: 0;
width: 20px;
padding: 12px 2px 12px 0;
border-right: 1px solid #C3CCD0;
border-radius: 3px 0 0 3px;
background-color: #EEE;
text-align: right;
font-family: Menlo, monospace;
font-size: 0.8em;
color: #AAA;
}

工作很好!毫无疑问,需要改进,这些东西有不断发展的习惯!如果这对您有任何用处或您有任何建议,请在下面的评论中通知我。

http://idodev.co.uk/2013/03/syntax-highlighting-with-highlightjs/

小文注:

可能根据每个人使用的高度风格上面的样式可能需要调整。

上一篇:新人主播如何赚钱,3点告诉你视频直播源码的变现方式


下一篇:win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建