如何修复谷歌对HTML转义序列的处理

时间:2013-01-07 14:15:36

标签: javascript html pretty-print google-code-prettify

google-code-prettify通过'美化'转义字符本身来处理代码块中的HTML转义,而不是转义序列。例如:

原始HTML <code class="prettyprint lang-sql"> ... &gt; ... </code>被美化为:

<span class="pun">&amp;</span><span class="pln">gt</span><span class="pun">;</span>

显然有错误的渲染。我无法在<code>内返回未转义的HTML,因为它不是来自可靠来源,可以用作XSS向量。

我的问题是,是否有任何方法可以强制google-pretty-print做正确的事情并将<code>的内容视为HTML(转义),而不是原始文本。

1 个答案:

答案 0 :(得分:1)

  

我的问题是,是否有任何方法可以强制google-pretty-print做正确的事情并将<code>的内容视为HTML(转义),而不是原始文本。

应该,而且确实如此。 C example证明了这一点

#include &lt;stdio.h&gt;

被美化为

<span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln">

我将您的示例代码粘贴到测试页面中并获得

<span class="pln"> </span><span class="pun">...</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> </span><span class="pun">...</span><span class="pln"> </span>

我认为您的问题可能是某些其他图层的结果。我会研究在浏览器之前看到HTML的任何内容管理系统,模板或博客发布软件。