2

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>

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

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

4

1 回答 1

1

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

它应该,而且确实如此。C 示例演示了这一点

#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 的任何内容管理系统、模板或博客发布软件。

于 2013-01-09T18:28:40.553 回答