我试图使用漂白剂来转义HTML标签。它工作得很好,除非我试图插入一个代码片段作为页面的内容。代码片段像这样插入:
<pre>
<code>
Code sample
</code>
</pre>
代码示例可能包含html标记。如果标签在<pre><code>
内,我如何使漂白剂不转义标签?我知道我可以把一些标签列入白名单,但似乎没有办法把所有标签都列入白名单,如果它们在代码块内,然后在其他情况下列入黑名单。外部的html标记由Markdown生成。
此外,漂白剂可以逃避所有<和>符号,但如果它们出现在代码片段中,它看起来像这样:
for (auto a = 0; i < 10; ++i)
如果漂白剂不能做到这一点,你能建议另一种逃避剂,可以做我需要的?
和>你想把
and <代码>。从阅读文档中我可以推断,您必须一个接一个地定义您想要白名单的标记,或者使用每次遇到标记时都会调用可调用的可调用对象。查看文档中名为:Callable Filters
的部分一个可能的解决方案是在干净的漂白剂上传递一个函数。Clean方法将检查所遇到的标记是否为HTML标记的子代码。你需要在那里解析HTML,你可以使用HTML解析器和
代码>xml.eTree
的TreeBuilder包