本文最初发布于个人我的博客:http://jerryzou.com/posts/usePygments/css
今天我尝试更换了我我的博客jerryzou.com中的代码高亮样式,主要使用的就是Pygments
。Pygments
有许多各式各样的样式可供选择,而在这篇文章中,我将为你们讲解如何安装Pygments
、以及如何生成代码高亮所须要的文件。html
在OS X
中,由于python是预装的,能够直接运行指令:python
easy_install pip pip install pygments
在Archlinux
上:linux
sudo pacman -S python-pygments
或者使用python2版的pygments:segmentfault
sudo pacman -S python2-pygments
在Unbutu
和Debian
上:hexo
sudo pat-get install python-pygments
在Fedora
和CentOS
上:工具
sudo yum install python-pygments
在Gentoo
上:post
sudo emerge -av dev-python/pygments
若是你用相似Jekyll
、hexo
等静态网站生成工具,你就不须要本身生成html文件,能够直接跳过这一小节。这些工具会帮你自动生成,好比本站就是使用Jekyll生成的。若是你须要本身生成html文件,能够参照如下的步骤:网站
假设须要高亮的代码为一段js代码,文件名为test.js
:spa
var testStr = "hello world";
你须要在终端中输入:
pygmentize -f html -o test.html test.js
-f html
指明须要输出html文件-o test.html
指明输出的文件名test.js
就是输入文件了最后咱们获得的html文件大概是这个样子的:
<div class="highlight"><pre><span class="kd">var</span> <span class="nx">testStr</span> <span class="o">=</span> <span class="s2">"hello world"</span><span class="p">;</span> </pre></div>
以上把须要生成的代码按词法分析拆分红多个小部分,接下来的问题是如何给这些分好的块上色呢?因而引出了下一个问题:咱们须要生成对应的css文件。
Pygments提供了十多种高亮样式的方案,全部可用的方案能够用以下方式查看:
>>> from pygments.styles import STYLE_MAP >>> STYLE_MAP.keys()
如此就能够获得以下结果:
本博客采用的样式是tango
,若是你喜欢的话,也能够按这种方案给本身博客的代码如此着色。言归正传,接下来介绍生成css文件的指令:
pygmentize -f html -a .highlight -S default > pygments.css
-a .highlight
指全部css选择器都具备.highlight
这一祖先选择器-S default
就是指定所须要的样式了,各位能够对各类样式都尝试一下。在官网上是能够直接尝试的哦! > pygments.css
将内容输出到pygments.css文件中最后pygments.css
文件的内容大概是这样的:
.highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } .highlight .c { color: #8f5902; font-style: italic } /* Comment */ .highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ .highlight .g { color: #000000 } /* Generic */ .highlight .k { color: #204a87; font-weight: bold } /* Keyword */ .highlight .l { color: #000000 } /* Literal */ .highlight .n { color: #000000 } /* Name */ .highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ .highlight .x { color: #000000 } /* Other */ ...
只要在使用到代码高亮的html文件中,引入这个css样式就大功告成了。