使用google-code-prettify高亮代码

这个博客,到现在换了好几个代码高亮的工具,之前的SyntaxHIghlighter虽然漂亮,无奈加载太慢,只能舍弃了。现在用的这个是google-code-prettfy,效果也相当不错。最重要的是,非常小,加载速度比SyntaxHighlighter快得多,而且,可以直接使用markdown的语法去写代码。

首先需要两个文件,prettify.js和prettify.css,自己去官网去下。把这两个放到模板中,如下

 
 
  1. <link href="/assets/themes//google-code-prettify/desert.css" rel="stylesheet" type="text/css" media="all">
  2. <script type="text/javascript" src="/assets/themes//google-code-prettify/prettify.js"></script>

考虑到加载速度,最好js写到文档末尾,body闭合标签之前,css写到头部

之后,还需要加上如下代码,用于识别并高亮代码块,这个需要使用jQuery

 
 
  1. $(function() {
  2. window.prettyPrint && prettyPrint();
  3. });

现在,就可以使用<pre></pre>标签进行高亮了,

 
 
  1. <pre class="prettyPrint">
  2. // code here
  3. </pre>

但这样会有些问题,就是在书写html代码的时候,html标签会被浏览器认为是标签而不是代码的字符。而markdown的语法写的代码其实已经解决了这个问题,所以,我们可以利用如下的js代码,来避免自己用<pre></pre>写代码所出现的问题,同样需要jQuery支持

 
 
  1. $(function() {
  2. $('pre').addClass('prettyprint linenums').attr('style', 'overflow:auto');
  3. });

这样之后,就没有问题了,可以直接用markdown的前置4空格来写代码了。其中addClass('prettyprint linenums')linenums是添加行号的意思。默认只显示第5、10、15...行,可以在css文件中li的格式添加list-style-type: decimal;,以显示全部行号

另外,如果博客中有用bootstrap,其中对pre有如下几句

 
 
  1. white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;

这会使得pre中的代码自动换行,而不是溢出形成滚动条。如果不希望如此,可以注释掉。就看个人的喜好了。如果是滚动条,默认的滚动太难看,可以修改一下样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值