本插件原修改自 Chroder.com 的 WordPress Code Highlight 插件。但 CoolCode 插件在它基础上修改了很多的内容。

下载:coolcode

CoolCode 所做的改进

  • 增加了直接以文件形式下载源代码的功能。
  • 增加了选择是否显示行号功能,在行号显示模式下还可以通过双击代码来隐藏或显示行号。
  • 将固定宽高的代码窗口改成了自适应的窗口。
  • 重新定义了样式表。使显示的代码更美观。
  • 将代码加亮处理后的 class 改为了内嵌式的 style。这样是为了方便将彩色代码复制到 Word 之类的 Rich Text 编辑器中。
  • 修改了 Text_Highlighter 中的 Html Renderer。修正了原 Html Renderer 产生的加亮代码复制出来后,每行代码前多一个空格的问题。
  • 修正了原插件发帖代码中包含’时的写入数据库错误。
  • 修正了回复中不能插入代码的错误。
  • 定义了 XML 和 BBCode 两种语法的 coolcode 标签。
  • 增加了 html 语言支持。

没有修正的问题

  • php 中的 html,Javascript 等非 PHP 代码无法加亮。
  • html、xml中的脚本无法按相应脚本格式加亮。
  • html 中的样式表无法按样式表格式加亮。

以上是 Text_Highlighter 要解决的问题,除非 Text_Highlighter 能解决这些问题,否则这些问题将一直保留。

CoolCode 使用方法

首先,下载并解压缩到您的 WordPress 插件,然后在您的 WordPress 中激活该插件就可以了。

本想给本插件增加对所见即所得编辑器支持的功能,后来经测试发现,所见即所得编辑器本身有太多问题,他无法将代码正确保存到数据库中。因此目前取消了对所见即所得编辑器支持的功能

所以如果你要使用本插件,请将 将 WordPress “选项”—>“写作”—>“自动修正错误的内嵌式 XHTML 语法”禁用,并在选项和用户中把所见即所得编辑器关掉,然后使用以下语法即可。

注意:目前方括号语法和尖括号语法等效,但不保证以后同样有效,推荐使用尖括号语法!

使用的语法是:

<coolcode>
代码
</coolcode>

如果要加亮具体的语言,可以用 lang 属性来指定:

<coolcode lang="程序设计语言">
代码
</coolcode>

如果不需要行号,可以使用 linenum 属性来指定:

<coolcode lang="程序设计语言" linenum="off">
代码
</coolcode>

如果希望可以直接以文件下载代码,可以使用 download 属性来指定:

<coolcode lang="程序设计语言" download="文件名.扩展名">
代码
</coolcode>

这三个属性可以组合使用,互不影响。

目前支持的程序设计语言有:

  • actionscript
  • cpp
  • css
  • diff
  • dtd
  • html
  • java
  • javascript
  • mysql
  • perl
  • php
  • python
  • ruby
  • sql
  • xml

2007年1月29日 更新

修正了 CoolCode 在 WordPress 2.1 上引起的导出错误。

2006年5月25日 更新

修正了将代码中的 ‘ 错误替换为 ‘ 的 bug。

2006年3月4日 更新

WordPress 有些选项会导致 ” 和 : 被修改,以至于使该插件不能正常工作,现已修正该 bug。

2006年2月28日 更新

增加了 ActionScript 语言的支持(来自 ZRong’s Blog )。

更新了内置的 PEAR 版本。

2006年2月11日 更新

修正了 coolcode 标签不能嵌套的问题。

修正了 php 程序不加 <?php ?> 不能加亮的问题。

2006年2月6日 更新

修正了某些主题因为样式表原因在行号显示模式下无法正常显示的问题。

修正了上次因修正行首单个空格不显示的问题而导致的 IE 下某些长文本无法换行的新问题。

去掉了 Text_Highlighter 中该插件不需要的文件。

2006年2月5日 更新

修正了行首单个空格不显示的问题。

将 Windows 上的默认显示字体改为 Fixedsys。

更新 PEAR (包括 XML_Parser 和 Text_Highlighter)到最新版本。

2006年1月26日 更新

修正了使用 Page Post 2 分页插件在翻页后使本插件代码下载功能实效的问题。

2006年1月20日 更新

修正了使用 Page Post 2 分页插件在翻页后双击行号显示隐藏功能实效的问题。

2006年1月11日 更新

修正了非加亮模式下没有正确显示代码缩进的问题。

修正了非加亮带行号模式下 Firefox 上空行行号重叠的问题。

2006年1月10日 更新

修正了在无行号模式下没有正确显示代码缩进的问题。

修正了在无行号模式下显示非等宽字体的问题。

2006年1月4日 更新

修正了某些没有 footer.php 的主题不能使用双击隐藏行号功能的问题。

2005年12月29日 更新

修正了在某些主题下双击隐藏行号无效的 bug。

修正了在某些主题下显示效果不一致的 bug。

更新了内置的 PEAR。

2005年12月20日 更新

增加了 linenum 属性,可以选择是否显示行号。

增加了download 属性,可以直接以文件形式下载代码。

2005年10月24日 更新

修改了一下样式表,使其在 Linux 上显示的字体更美观一些。

2005年7月20日 更新

修正了某些语句太长不换行的 bug。

2005年7月14日 更新

修正了 xhtml 校验错误。

修正了 css 校验错误。

2005年7月11日 更新

修正了在 firefox 上行号隐藏后,空行不再显示的 bug。

转自www.coolcode.cn

CoolCode 是 WordPress 的一个程序代码高亮插件,是由国人 andot (http://www.coolcode.cn)在 WordPress Code Highlight 插件的基础上修改而来,已经在国内各大博客中被广泛使用。
本博客也使用了这个插件,本文并不想写这个插件的安装和使用方法,如果有朋友想了解此插件,请访问这里

本文就使用这个插件时遇到的一点小问题,写一点解决方案,这些方案都是Google得来本人并不做技术支持,请谅解。

一、哪里可以下载?
———————————————————————————————————————–
原本想既然知道了官方站点,那肯定可以下载到最新版。但是……我错了,官方站点上的下载连接已经失效,晕啊。
Google了半天,其它站点上的下载连接基本上全是指向官网。好不容易找到了一个可以下载的地方,点击下载

二、安装CoolCode按钮到编辑器
———————————————————————————————————————–
CoolCode在使用时默认需要自己写一段代码
<coolcode lang=”代码语言” linenum=”行号开关” download=”文件名.后缀”>需要高亮的代码</coolcode>
lang(代码语言):actionscript、cpp、css、diff、dtd、html、java、javascript、mysql、perl、php、python、ruby、sql、xml
linenum(行号开关):on(开)、off(关)
download(下载文件名):CoolCode允许设定一个单独的文件供用户下载,就不用复制黏贴了,非常人性化。这里需要设定供下载的文件名和后缀。
如果有大量代码需要高亮,手工工作量很大,这是需要一个方法来快速生成CoolCode高亮参数,其中之一就是将CoolCode功能作为一个按钮放到编辑器中。添加按钮是手工修改wp-includes/js/quicktags.js,具体的修改内容,可以参考这篇文章,文章作者想到了象我这种懒人是不会那么有耐心去修改js的。

三、CoolCode不显示语法高亮
———————————————————————————————————————–
按照传统方法安装完CoolCode,激活,测试一段代码,没有语法高亮!!!
寻觅好久,最终在页面的源代码中找到了原因,在页面(无论是Index还是Single页面)的head部分有以下两行代码(只有激活CoolCode才会出现)

<link rel="stylesheet" href="http://www.XXXX.com/wp-content/plugins/coolcode/coolcode.css" />
<script type="text/javascript" src="http://www.XXXX.com/wp-content/plugins/coolcode/coolcode.js"></script>

这是CoolCode语法高亮所必须的css和js文件,一般来说这样访问是不会有错的,但是为什么我的代码不高亮呢?原因在于我的wordpress不是安装在站点根目录下。
在安装wordpress时一般有两种安装方法:
第一种是直接安装在网站的根目录中
www.XXXX.com
|
|wp-admin
|wp-content
|wp-includes
|……
第二种是安装在根目录下的一个指定的子目录中
www.XXXX.com
|
|wordpress
|wp-admin
|wp-content
|wp-includes
|……
这两种安装方法各有各的好处,在此不做讨论。CoolCode显然只考虑到第一种情况,而忽略了第二种情况。所以按照上面的css和js路径访问是访问不到所需文件的,自然高亮就无法显示。
解决方案是:修改CoolCode插件中的coolcode.php文件,查找add_css函数和add_js函数。
在大约157行找到add_css函数,把其中的

get_settings('home')

修改为

get_settings('siteurl')

在大约167行找到add_js函数,同样把其中的

get_settings('home')

修改为

get_settings('siteurl')

然后保存并覆盖原先的coolcode.php,刷新页面查看源代码,看以看到

<link rel="stylesheet" href="http://www.XXXX.com/wordpress/wp-content/plugins/coolcode/coolcode.css" />
<script type="text/javascript" src="http://www.XXXX.com/wordpress/wp-content/plugins/coolcode/coolcode.js"></script>

问题解决。
那什么是“home”?什么是“siteurl”?
“home” 就相当于Wordpress后台->Setting->Blog address (URL)
“siteurl” 就相当于Wordpress后台->Setting->WordPress address (URL)
如果是直接安装在网站根目录下,那么“home” = “siteurl”
如果是安装在一个子目录中(例如:www.XXXX.com/wordpress/),那么
“home” = Blog address (URL) = www.XXXX.com
“siteurl” = WordPress address (URL) = www.XXXX.com/wordpress/
所以我建议无论采用那种安装方式,都把get_settings(’home’)修改为get_settings(’siteurl’),这样无论今后如何变更目录结构,都不会出现CoolCode失效的情况。也希望CoolCode在后面的版本能修改掉这一Bug。

四、复制黏贴带行号
———————————————————————————————————————–
有时程序作者没有提供源代码的下载,而在页面上用CoolCode高亮时显示了行号。这种情况下如果用复制黏贴的方法下载源代码,会把行号一起复制下来,去除行号的工作可能是你发疯的一个诱因。
在CoolCode显示的行号的左侧顶部,有两个小于号“<<”,双击这个符号可以隐藏行号,但是即使行号隐藏了,在复制黏贴时行号依然会被复制。
所以我在自己的博客上要么提供源文件下载,要么就不使用行号。最大限度的方便用户下载代码。

五、CoolCode的缺点和注意事项
———————————————————————————————————————–

这个插件是基于Text_Highlighter修改而来的..所以..Text_Highlighter中存在的一些问题,CoolCode仍存在..
与”所见即所得编辑器”冲突..或者说,是”所见即所得编辑器”不兼容它“所以在使用的时候要万分小心!!或者,可以干脆禁用”所见即所得编辑器” — 将 WordPress “选项”—>“写作”—>“自动修正错误的内嵌式 XHTML 语法”禁用
php 中的 html,Javascript 等非 PHP 代码无法加亮。
html、xml中的脚本无法按相应脚本格式