SyntaxHighlighter使用小结

发表于: sitebuild | 作者: | 日期: 2010/8/05 11:08
字号:

用了一个上午的时间来研究SyntaxHighlighter,不得不承认,SyntaxHighlighter的确强大而且美观,不仅提供了对大多数编程语言的支持,而且提供了非常多的代码高亮主题以供选择。

不过SyntaxHighlighter对html代码的高亮让人有点闹心。

官方文档说设置 html-script 为true,同时引入 shBrushXml.js 即可设置 html 代码高亮,然后我测试之后发现实际情况并非如此,被高亮的整个代码块根本无法正常显示。

我查看了官方 demo 的html源代码,发现示例中所有 html 标签的左尖括号全部被替换为了[ < ],我如法炮制,发现秘密就在于此,原来 SyntaxHighlighter 需要对 html 标签中左尖括号进行如此替换之后才能正常高亮显示。

从官方的安装文档中也发现对该问题的说明:

http://alexgorbatchev.com/SyntaxHighlighter/manual/installation.html

另外,测试了一下其他的JavaScript版代码高亮工具,发现无法直接高亮html代码是一个普遍问题。

SyntaxHighlighter 安装说明

1、 引入shCore.js 和 shCore.css ;

2、 引入所需要的brushes,比如高亮显示JavaScript需要引入shBrushJScript.js;

3、引入级联样式表文件:shCore.css 和 shThemeDefault.css ;

4、 用<pre>标签标识准备高亮显示的代码段;

5、 调用SyntaxHighlighter.all()方法。

SyntaxHighlighter的引入其实很简单,参照下载文件中的示例可以很快上手。

SyntaxHighlighter 配置说明

SyntaxHighlighter可以通过3种方式进行配置:

SyntaxHighlighter.config
SyntaxHighlighter.config中的配置项的作用范围是被高亮显示的整个代码块,而对于代码块中单行的代码则没有什么意义,以下为具体配置项的说明:

bloggerMode
如果你要高亮的内容位于blogger.com,那么你需要开启这个开关。

默认值:false

strings
该配置项允许你修改默认信息。

默认值:Object

stripBrs
该选项会自动过滤掉被高亮代码块中每行后面自动添加的
标签。

默认值:false

tagName
该配置项允许使用其他标签来标识代码块。

默认值:”pre”

示例:

SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();

SyntaxHighlighter.defaults
SyntaxHighlighter.defaults中的配置项的应用对象是代码块中的单行代码。

auto-links
是否自动检测代码块中的超链接。关闭该配置型,则代码块中的链接被关闭,无法点击进入。

默认值:true

class-name ”
加入自定义样式。

collapse
代码块是否默认折叠。

默认值:false

first-line
该配置项允许修改起始行的行号。

默认值:1

gutter
该配置项用来设置行号显示与否。

默认值:true

highlight
该配置项用来着重显示某些代码行。可以通过单个数字来着重显示单行,或者传入一个类似 [1, 2, 3] 的数组来着重显示指定的多行。

默认值:null

html-script
开启该配置项可以高亮显示HTML/XML代码,这在WEB开发中非常常见。开启该配置项需要shBrushXml.js的支持,同时你的brush也需要支持该特性。

默认值:false

smart-tabs
该配置项用来开启或关闭 mart tabs 特性。

默认值:true

tab-size
该配置项用来设置代码块中tab键的大小。

默认值:4

toolbar
配置项用来设置工具栏的显示与否。

默认值:true

示例:

SyntaxHighlighter.defaults[‘gutter’] = false;
SyntaxHighlighter.defaults[‘smart-tabs’] = false;

SyntaxHighlighter.all();

Parameters
Parameters仅在当前代码段中生效,我们可以利用Parameters的这个特性为同一页面的不同代码段设置不同的高亮效果。Parameters利用键值对进行设置,这种形式同CSS非常类似。

通过设置Parameters,我们可以修改 SyntaxHighlighter.defaults 中的任意配置项的默认值。

示例:


: https://blog.darkmi.com/2010/08/05/1377.html