解决 Crayon Syntax Highlighter 中的HMTL转义问题

转载 http://zctou.com/?p=1629#ixzz4wDAX40uW

最近在搜索一款可以高亮显示代码的wordpress插件,经过多种测试,发现能自动捕获<pre></pre>标签或者<code></code>标签的插件,就只属这款Crayon Syntax Highlighter 效果比较优秀,可以提供有好几十种模板给你选择,这里选择了下图的这种。

Crayon Syntax Highlighter 中的HMTL转义问题

但如果你用的是默认的设置,你会发现HTML特殊字符转义出现问题,具体如下,正常情况应该是输出这样一段代码

HTML特殊字符转义出现问题

但如果你用的是默认的设置,输出的却像以下的代码:

输出

百度了一下,造成问题的原因是:wordpress在后台编辑框中提交的文本是要被保存到数据库,但在前台展示时才会经过Markdown转码。但是做的是先由Markdown根据语法转码后交由Crayon Syntax Highlighter进行代码高亮的渲染。而Markdown会将代码中的特殊符号经由HTML进行转义,而Highlighter会原封不动得显示<pre>标签中已经被转义的HTML代码,所以如上图所示,展示出来的是转义过后的&lt;等代码。

所以Highlighter必须在渲染时将转义过后的代码再转义回来。后台选项如下:

HTML转义设置

捕获code行内标签

Read more: http://zctou.com/?p=1629#ixzz4wDApeMJe

© 2017, 新之助meow. 原创文章转载请注明: 转载自http://www.xinmeow.com

0.00 avg. rating (0% score) - 0 votes
点赞