语法加亮插件 SyntaxHighlighter 的好伴侣,轻便的 TinyMCE 工具按钮

用 SyntaxHighlighter 有一段时间了,版本从 1.x、2.x,到现在的最新版本是 3.0.83,1.x 和 2.x 相差较大,2.x 到 3.x 未感觉多大的变化。SyntaxHighlighter 原来是在 google 中的项目,http://code.google.com/p/syntaxhighlighter/,现在由 DbNetLink 赞助,项目移至:http://alexgorbatchev.com/SyntaxHighlighter/

在 WordPress 中关于应用 SyntaxHighlighter 进行语法加亮有众多的插件支持,搜索 SyntaxHighlighter 就知道了。但是为 TinyMCE 辅助的工具按钮却未找到一个较好用的,之前也有介绍过:给 TinyMCE 添加一个语法加亮插件的工具按钮,也是根据某个插件进行修改的。不如之处就是点击按钮后还需与服务端作一次交互,这对于使用国外较慢的空间有些受不了。

这里对该插件进一步改进,直接在客户端选择语言生成 <pre class="brush:java">Java CodeHere</pre> 这样的代码,并且编辑时已给 <pre> 应用了样式,无需去改动主题的 style.css 文件。

本插件基于 SyntaxHighlighter Evolved,当然你也可以安装其他的以 SyntaxHighlighter 为内核的语法加亮插件。它所带的 SyntaxHighlighter 是目前最新的 3.0.83,按钮下拉显示了 3.0.83 支持的所有语法选择,分了两组,常用的像 java/php 等,其他的像 scala/powershell 等。

如果你不想在下拉菜单中看到那么多的选项的话,你可以编辑插件目录中的 editor_plugin.js 文件中的 common_brushes 和 other_brushes 这两个变量,因为确实多数是用不着的。

在 TinyMCE 编辑器中添加了一个按钮,点击按钮直接选择语言,然后在编辑区域生成了 <pre class="brush:所选语言">所选语言 CodeHere</pre>,你只要在其中贴上要被加亮的代码,替换掉 所选语言 CodeHere 即可。注意啦,在编辑器中 <pre> 区域很容易识别出来,因为给它应用了样式:

Code 下拉菜单中包括了插件 SyntaxHighlighter Evolved 当前版本中所带有所以支持的语法,它同时兼容了 SyntaxHighlighter 2.x 和 SyntaxHighlighter 3.x,其中的 sass/scss 和 applescript 只在 SyntaxHighlighter 3.x 中支持,还有 latex/tex、f-sharp/fsharp、clojure/Clojure/clj、r/s/splus、objc/obj-c、matlabkey/matlab 是该插件加入的第三方语法高亮脚本,其他的就是 2.x 和 3.x 同时支持的。

插件下载:syntax-button-0.2.zip,建议安装 SyntaxHighlighter Evolved 插件,其他的以 SyntaxHighlighter 为核心的插件未测试过。

当前不足与需加添加的功能有:

1. 增加后台的可配置功能,比如要显示在下拉菜单中的语法选择项可配置,是生成 <pre> 还是 [code][/code][/code]

也要可配置,还可适当支持更多的 SyntaxHighlighter 的选项。
2. TinyMCE 本身的劣性可在此插件中进行改进,例如 Tab 会被替换成一个空格,多个空格也是被替换成一个空格。

参考:1. WordPress自定义TinyMCE按钮
             2. Menu button example

类别: Web/JS, WordPress. 标签: , , . 阅读(845). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar
wpDiscuz