CodeColorer的Html转义

刚开始写博客时候我用的CodeColorer进行WordPress的代码高亮。后来,我觉得这个插件在格式上有些不满意的地方,于是就停用了。之后写的文章都是直接包在WordPress的Code元素内。

几天之后,我发现了这个问题,大部分的代码在这两种模式下还算正常,但是如果是遇到html下的一些转义字符,就变得麻烦了。CodeColorer的html代码添加是在编辑器的HTML模式下编辑,编辑后不能切换到可视化编辑器下,否则代码会被编辑器格式化。HTML代码的转义靠CodeColorer自动完成。

在使用WordPress自己的code元素后,也就是关闭了CodeColorer插件,代码转义靠在可视化编辑器下就进行了转义。

像我这个博客,前半段代码存放的是直接html代码,而后来的存放了几篇经过转义的html代码,造成了代码显示混乱。

症状

Snap2

开启CodeColorer+可视化界面编辑结果

关闭CodeColorer+HTML编辑结果

关闭CodeColorer+HTML编辑结果在首页显示

关闭CodeColorer+HTML编辑结果在内容页

关闭CodeColorer+HTML编辑结果在内容页

正确显示

正确显示

解决方法

CodeColorer开着和关着都成问题,要么影响我之前的代码,要么影响我后来的代码。所以必须有第三种方法解决,我检查了CodeColorer源码,发现了在codecolorer-core.php一段代码。

if ($options['escaped']) {
$text = html_entity_decode($text);
}

大意是如果选项有escaped的话,就对text进行html转换。

(其实我觉得把if给注释了,直接用转义,可以更好的使用,省的每段代码加入escaped=”true”)

果然,我在官方的Frequently Asked Questions中找到这么一段话:

Q. I see &lt; instead of < (or other HTML entities like >, &, “) in my code.

A. You should use [cc escaped="true"] or [cce] in the visual editor when inserting code into the post.

就是说在<code>标签中加入escaped=”true”就可以防止Html被转义。

我坚持使用code标签,以防在没有CodeColorer的环境下[cc]解析出现错误。

版权所有 © 2010 转载本站文章请注明: 转载自Log4D
原文链接: http://dddspace.com/2009/09/the-html-escape-codecolorer.html
您可以随意地转载本站的文章,但是必须在醒目位置注明来源及本站链接,不可以将本站文章商业化使用,或者修改、转换或者以本作品为基础进行创作。
3a1ff193cee606bd1e2ea554a16353ee

分享家:Addthis中国
你也许会喜欢下面的文章

4 条留言

  1. 被发表在 2009年09月7日 at 19:27 | 固定链接

    转来看看发现博客换主题了,友情链接没有了

    [回复]

  2. 被发表在 2009年09月7日 at 20:18 | 固定链接

    我没用代码高亮插件,只是简单在css定义pre

    [回复]

  3. 被发表在 2009年09月7日 at 21:48 | 固定链接

    @zwwooooo
    我写的代码比较杂,感觉加上代码高亮更人性化一些

    [回复]

  4. 被发表在 2009年09月7日 at 21:49 | 固定链接

    @Keengle
    呃,今天刚换回iNove,插件兼容性更好一些。侧边栏忘了调整,现在就弄“`

    [回复]

一个 Trackback

  1. By DDD的一亩三分地 » DDDSpace.cn6个月拉 on 2009年11月14日 at 22:38

    [...] 为了庆祝周庆,我重新部署了博客的插件,CodeColorer的Html编码问题已经被我彻底搞清楚。最大的麻烦:”WordPress编辑器空格在FireFox下面无法缩进“也被我用新的插件"Dean's FCKEditor With pwwang's Code Plugin For Wordpress"完美解决。 [...]

留下一条评论

你的邮箱不会被公开 . *标注为必填

*
*