我想我和我周围的许多人都会需要在blog中贴些代码以拼凑版面丰富内容,而没有高亮的代码是不能看的,于是再度求助于wordpress插件。比较好的代码语法高亮库有,GeSHi, SyntaxHighlighter 2.0google-code-prettify,他们也都有不只一个对应的wordpress插件,安装后就可以直接用了。这三个库各有千秋,我的体验如下:

首先是语言支持方面。GeSHi支持的语言太tm妈多了(有paper指出这里tm是对多的强调,避免歧义),其高亮也要比另外两个强大,可以识别更多的语法元素;google-code-prettify也支持不少语言,而且还有相当浮云的自动语言识别功能,可是对显示行号的支持不咋的;SyntaxHighlighter这方面要逊色一些,早先的版本连perl都不支持>_<,默认识别的语法元素也不那么多。

然后比较一下显示效果,SyntaxHighlighter无疑是大优势胜出,还有view source, copy source, print这样的浮云功能。另外两个风格比较接近,GeSHi的格式似乎丰富一些,不过有时候却反而显得有点乱,不过这些显示效果都可以通过修改css改进。最主要的一点,也是让我坚定选择SyntaxHighlighter的原因在于,SyntaxHighlighter能够处理自动换行,还可以在自动换行处加上标记。而其他两个把代码放在pre标签中,其结果就是当一行代码稍长的时候,右边部分会看不到,或者会把所在div撑大,结果破坏整个页面的结构!对此已有体会。

最后说一下扩展性。理论上三者都可以扩展,而SyntaxHighlighter的扩展一个新的语言是非常简单的。当然像GeSHi都支持那么多语言了,估计也用不着扩展了。此外SyntaxHighlighter也有着更多的属性可以配置。

比较之后,我选择了使用SyntaxHighlighter的插件SyntaxHighlighter Evolved。在setting页面你可以对行号,工具栏和tab宽度等设置,还可以选择eclipse, emacs等颜色主题。

最后用A + B Problem来测试一下效果。A + B Problem

4 Responses to “灾后重建III:代码高亮”
  1. dd says:

    悲剧的是在RSS里就没高亮了

  2.  
Leave a Reply