简单的HTML清理工具
项目描述
介绍
本包包含了一些实用的Python方法,用于清理HTML标记或执行其他常见更改。清理足够严格,可以清理从MS Word或Apple Pages粘贴的HTML。本包还包含用于z3c.form的集成代码,以提供在保存时自动清理HTML的字段。
实现基于lxml中的Cleaner类。
清理例程
所有清理例程都可以通过单个sanitize函数调用。此函数接受一个输入字符串作为输入,并返回该字符串的清理版本。以下是一个简单的示例
>>> from htmllaundry import sanitize >>> sanitize('Hello, <em>world</em>') '<p>Hello, <em>world</em></p>'
sanitize方法接受一个可选的额外参数,它是一个lxml Cleaner实例,可以用来使用不同的过滤规则。htmllaundry包括三个清理器
htmllaundry.cleaners.DocumentCleaner,这是默认清理器。此清理器将允许大多数安全的标签,同时去除内联样式和不安全的标记。
htmllaundry.cleaners.LineCleaner是一个更严格的清理器,仅允许几个内联元素。这在您只希望接受单行输入的地方很有用,例如在文档标题中。
htmllaundry.cleaners.CommentCleaner只允许非常有限的HTML元素集,旨在对用户提供的评论很有用。它还将所有外部链接强制在新浏览器窗口中打开。
如果您想走得更远,您还可以使用strip_markup来从输入中去除所有标记
>>> from htmllaundry import strip_markup >>> strip_markup('Hello, <em>world</em>') 'Hello, world'
z3c.form集成
如果您想使用z3c.form集成,您应该使用此包的z3cform附加组件
install_requires=[ .... htmllaundry [z3cform] ... ],
此外,您还需要加载ZCML。在您的configure.zcml中添加类似以下行
<include package="htmllaundry" />
然后您可以在您的模式中使用HtmlText字段类型。例如
from zope.interface import Interface from zope import schema from htmllaundry.z3cform import HtmlText class IDocument(Interface): title = schema.TextLine( title = _(u"Title"), required = True) description = HtmlText( title = _(u"Description"), required = True)
请注意,使用HtmlText不会自动为您提供WYSIWYG小部件。
变更日志
2.2 (2020-01-28)
使用@implementer和@adapter类装饰器以实现Python3兼容性[ale-rt]
2.1 - 2016年5月10日
不要删除可能用作锚点的空<a>标签。
在删除空标签时,允许定义额外的标签,这些标签被认为是空的。
2.0 - 2012年12月7日
在包装未包装的文本时,不要为内联元素创建单独的包装器。
对所有函数使用PEP8命名。旧公共方法的名称将继续用于向后兼容。
添加Python 3支持。
1.10 - 2011年5月17日
向sanitize添加选项以指定不同的包装元素或完全跳过包装。
1.9 - 2011年4月27日
添加MANIFEST.in以方便不是从subversion发布的版本。
修复所有清理器以去除JavaScript。这解决了问题1。
1.8 - 2010年11月30日
从 sanitize 中的硬编码代码路径中删除链接目标的强制执行。这使得可以使用新的 link_target 清洁选项。
1.7 - 2010年11月30日
通过清洁器中的新 link_target 选项使外部链接的目标属性强制执行可配置。仅对 CommentCleaner 启用此选项。
1.6 - 2010年11月18日
纠正了包裹裸文本的空白测试。
1.5 - 2010年11月18日
纠正了空白检查以处理所有 Unicode 空白。这修复了 xA0(或 HTML 中的 )被视为文本的问题。
1.4 - 2010年8月3日
进行了一些小的代码清理。
删除前导换行符。
1.3 - 2010年7月30日
删除所有顶级 br 元素。块级元素中的换行符是可以的,但不应该用于在块元素之间添加垂直间距。
1.2 - 2010年2月15日
修复了文档中的一个错误。
删除尾随换行符。
1.1 - 2010年2月5日
添加了一个简单的 StripMarkup 方法。
添加了 z3c.form 集成所需的 ZCML。
1.0 - 2010年2月5日
首次发布
项目详情
htmllaundry-2.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9124f067d3c06ef2613e2cc246b2fde2299802280a8b0e60dc504137085f0334 |
|
MD5 | 7783edc1b67ab1d0627cf77a09c825a8 |
|
BLAKE2b-256 | 36f5c7acf875d41a2a742396df3654416444cc5e0e5c262d1c51a68c9842a24c |