刚开始写博客时候我用的CodeColorer进行WordPress的代码高亮。后来,我觉得这个插件在格式上有些不满意的地方,于是就停用了。之后写的文章都是直接包在WordPress的Code元素内。
几天之后,我发现了这个问题,大部分的代码在这两种模式下还算正常,但是如果是遇到html下的一些转义字符,就变得麻烦了。CodeColorer的html代码添加是在编辑器的HTML模式下编辑,编辑后不能切换到可视化编辑器下,否则代码会被编辑器格式化。HTML代码的转义靠CodeColorer自动完成。
在使用WordPress自己的code元素后,也就是关闭了CodeColorer插件,代码转义靠在可视化编辑器下就进行了转义。
像我这个博客,前半段代码存放的是直接html代码,而后来的存放了几篇经过转义的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 < 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



4 条留言
转来看看发现博客换主题了,友情链接没有了
[回复]
我没用代码高亮插件,只是简单在css定义pre
[回复]
@zwwooooo
我写的代码比较杂,感觉加上代码高亮更人性化一些
[回复]
@Keengle
呃,今天刚换回iNove,插件兼容性更好一些。侧边栏忘了调整,现在就弄“`
[回复]
一个 Trackback
[...] 为了庆祝周庆,我重新部署了博客的插件,CodeColorer的Html编码问题已经被我彻底搞清楚。最大的麻烦:”WordPress编辑器空格在FireFox下面无法缩进“也被我用新的插件"Dean's FCKEditor With pwwang's Code Plugin For Wordpress"完美解决。 [...]