我试图使用漂白剂来转义HTML标记。它工作得很好,除非我试图插入一个作为页面内容的代码片段。插入代码片段的方式如下:
<pre>
<code>
Code sample
</code>
</pre>代码示例可能包含html标记。如何使漂白剂不转义标签,如果他们在<pre><code>内?我知道我可以白名单一些标签,但似乎没有办法白名单所有标签,如果他们在代码块和黑名单,然后在其他情况下。外部html标记是从Markdown生成的。
此外,漂白剂可以转义所有<和>标记,但是如果它们出现在代码片段中,则如下所示:
for (auto a = 0; i < 10; ++i)如果漂白剂不能做到这一点,你能建议另一个越狱者,可以做我需要的吗?
发布于 2016-08-28 16:31:46
您希望对< pre >和< code >的子标记进行白名单。根据我从阅读文档中可以推断出来的情况,您必须逐个定义要白名单的标记,或者使用可调用的标记,每当遇到标记时,就会调用可调用的标记。
查看名为:可调用过滤器的部分的文档
解决您的问题的一个可能的解决方案是在干净的bleach.clean上传递一个函数,该函数将检查所遇到的标记是否是代码html标记的子标记。您必须在那里解析HTML,您可以使用HTML解析器以及TreeBuilder of xml.eTree包。
这是一个关于不同答案的示例。
https://stackoverflow.com/questions/39192753
复制相似问题