wordpress 代码高亮显示的一些思路

WordPress 下实现代码语法高亮的插件,最有名的主要是基于 SyntaxHighlighter 和 GeShi 的两大阵营。之前我采用了基于 SyntaxHighlighter 的 SyntaxHighlighter Evolved 插件。测试了一段时间,总觉得它的显示样式并不是很爽,而且不能针对个别代码指定主题样式,而我尝试自定义 CSS 类,通过 classname 参数指定,却没有任何效果。于是转向 GeShi 阵营看了看,发现了 CodeColorer 插件,比起同样基于 GeShi 的 WP-Syntax 插件功能更要强大,而且同 SyntaxHighlighter 比较,我感觉它有这么几个优点:

•丰富灵活的 Short codes(短标签),用[cc]来代替<code>,可以避免使用code标签。作者还提供了跟简洁的语法[ccMODE_LANG]来定义代码块。LANG就是指定语法高亮的语言,MODE可以是下面几个模式的一个或多个:</code>
•i – inline
•e – escaped
•s – strict
•n – line_numbers
•b – no_border
•w – no_wrap
•l – no_links
模式分大小写,小写表示打开,相应的大写表示关闭,比如就如同&lt;code&gt;,注意关闭标签要一致,当然后面还可以再带属性
•支持的参数要比 SyntaxHighlighter 多很多,所以能实现的功能也就多很多,比如:
◦能够定义代码框的显示大小,而且还能定义代码框内是否显示垂直滚动条。
◦可以通过 theme 参数对某段代码设置不同的主题样式,这个对我很有吸引力,比如 Linux 下的 Shell 代码,我希望显示成黑底白字的样式,而其他代码用普通样式,通过这个参数可以分别指定。
◦inline 方式显示代码,嵌入文章正文行中,实现的效果我感觉要比 SyntaxHighlighter 的 light 方式好些。
属性说明及例子
属性列表如下,括号内是参数类型.string是字符串;integer是整数;boolean是布尔型(开关),可接受“true” “false”, “on” “off”, 整数 1 or 0.

•lang (string) – 代码使用的语言。
•tab_size (integer) – 用以替换制表符的空格数,可在设置界面更改。
•line_numbers (boolean) – 是否显示行号,可在设置界面更改。
•first_line (integer) – 指定代码块第一行的行号
•highlight (string) – 用于指定整行高亮的代码行行数,参数是用半角逗号分隔的数字串(如 1,5,8,9)。
•no_links (boolean) – 当值为false时,关键字将会添加一个到官方文档的链接,可在设置界面更改。
•lines (integer) –指定代码块显示的行数,当值设置为-1时,不出现纵向滚动条,可在设置界面更改。
•width (integer or string) – 代码块宽度,可在设置界面更改。
•height (integer or string) – 代码块高度,当这个高度可显示的行数比lines指定的值大才会生效,可在设置界面更改。
•rss_width (integer or string) – 代码块在RSS输出时的宽度,可在设置界面更改。
•theme (string) – 代码块颜色风格 (default, blackboard, dawn, mac-classic, twitlight, vibrant),可在设置界面更改。
•inline (boolean) – 内嵌模式开关,用于将一行代码插入到文本中。
•strict (boolean) – 严格模式的开关。
•nowrap (boolean) – 当值指定为false时,过长的行将会被自动换行,以避免出现横向滚动条。
•noborder (boolean) – 是否显示边框的开关。
•no_cc (boolean) – 当值为true时,code标签将会被解析,但代码块不会有格式。
•class (string) – 添加一个新的CSS。
•escaped (string) – 当值为false,代码块里的html转义字符不会被转义,如

&amp;lt;

不会转义为<,默认为false。

这些代码语法高亮插件,在 WordPress 里使用的时候,都可以和 TinyMCE 和 TinyMCE Advanced 友好相处,CodeColorer 似乎还有个专门的 CodeColorer TinyMCE Button 插件来做这件事。
使用时,将编辑器切换到HTML模式,而不是可视化。在想要插入代码的地方,输入以下代码:
<code lang=””lang_name””>这里是代码</code>

可以省略

lang="lang_name"

标记,不过也就没有高亮了

lang_name表示语言名称,根据插入语言的类型写入适当的值,例如要高亮PHP代码,则用下面的语句:
<code lang=”php”>echo “This is php code”;</code>
效果:

echo “This is php code”;
  1. 还没有评论

  1. 还没有引用通告。