google-code-prettify通过'美化'转义字符本身来处理代码块中的HTML转义,而不是转义序列。例如:
原始HTML <code class="prettyprint lang-sql"> ... > ... </code>
被美化为:
<span class="pun">&</span><span class="pln">gt</span><span class="pun">;</span>
显然有错误的渲染。我无法在<code>
内返回未转义的HTML,因为它不是来自可靠来源,可以用作XSS向量。
我的问题是,是否有任何方法可以强制google-pretty-print做正确的事情并将<code>
的内容视为HTML(转义),而不是原始文本。
答案 0 :(得分:1)
我的问题是,是否有任何方法可以强制google-pretty-print做正确的事情并将
<code>
的内容视为HTML(转义),而不是原始文本。
应该,而且确实如此。 C example证明了这一点
#include <stdio.h>
被美化为
<span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str"><stdio.h></span><span class="pln">
我将您的示例代码粘贴到测试页面中并获得
<span class="pln"> </span><span class="pun">...</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="pun">...</span><span class="pln"> </span>
我认为您的问题可能是某些其他图层的结果。我会研究在浏览器之前看到HTML的任何内容管理系统,模板或博客发布软件。