首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让Bleach允许代码标记

让Bleach允许代码标记
EN

Stack Overflow用户
提问于 2016-08-28 15:17:27
回答 1查看 926关注 0票数 3

我试图使用漂白剂来转义HTML标记。它工作得很好,除非我试图插入一个作为页面内容的代码片段。插入代码片段的方式如下:

代码语言:javascript
复制
<pre>
<code>
 Code sample
</code>
</pre>

代码示例可能包含html标记。如何使漂白剂不转义标签,如果他们在<pre><code>内?我知道我可以白名单一些标签,但似乎没有办法白名单所有标签,如果他们在代码块和黑名单,然后在其他情况下。外部html标记是从Markdown生成的。

此外,漂白剂可以转义所有<和>标记,但是如果它们出现在代码片段中,则如下所示:

代码语言:javascript
复制
for (auto a = 0; i &lt; 10; ++i)

如果漂白剂不能做到这一点,你能建议另一个越狱者,可以做我需要的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-28 16:31:46

您希望对< pre >和< code >的子标记进行白名单。根据我从阅读文档中可以推断出来的情况,您必须逐个定义要白名单的标记,或者使用可调用的标记,每当遇到标记时,就会调用可调用的标记。

查看名为:可调用过滤器的部分的文档

解决您的问题的一个可能的解决方案是在干净的bleach.clean上传递一个函数,该函数将检查所遇到的标记是否是代码html标记的子标记。您必须在那里解析HTML,您可以使用HTML解析器以及TreeBuilder of xml.eTree包。

这是一个关于不同答案的示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39192753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档