基于MIME的内容转换
项目描述
简介
这个Zope产品为CMF提供了两个新工具,以便在门户内容上进行基于MIME类型的转换,从而可以轻松地为以前不支持的内容类型添加新的转换。提供以下工具:
- portal_transform(转换工具)
处理从一种MIME类型到另一种类型的转换
还提供了一组可用的转换。有关更多信息,请参阅文档。
注意,此包也可以作为一个独立的Python包使用。如果您已下载Python发行版,则不能将其作为Zope产品,因为Zope文件已从该发行版中删除。
此产品是Archetypes项目的分支。
兼容性
对于Plone 4和5.0,使用版本2.x。
对于Plone 5.1及以后版本,使用版本3。
对于Plone 6及以后版本,使用版本4。
变更日志
4.1.0 (2024-08-09)
新功能
safe_html中的快捷方式:检查html或script的迹象,如果未找到,则跳过进一步处理。(#66)
4.0.3 (2024-04-25)
错误修复
使用来自新包 lxml_html_clean 的 Cleaner。这从版本 5.2.0 中的 lxml 中提取出来。请参阅 https://lxml-html-clean.readthedocs.io/ [maurits] (#3938)
4.0.2 (2024-01-22)
内部
更新配置文件。 [plone devs] (80cf330f)
4.0.1 (2023-03-14)
内部
合并 plone/meta 想要的最安全的变化 (#58)
4.0.0 (2023-02-22)
破坏性更改
该包现在与 Plone 6 和 Python 3.8+ 兼容。 (#51)
错误修复
修复弃用警告 (#51)
3.2.2 (2023-02-08)
错误修复
更新到 Zope4,仅包括 troove 类别。 [jensens] (#50)
3.2.1 (2022-10-28)
错误修复
在 Python 3.11 上修复测试中的正则表达式。 [maurits] (#48)
测试:在 Linux 上修复与 lxml 3.9+ 的不兼容性。这会导致输出略有不同。 [maurits] (#818)
3.2.0 (2022-03-17)
错误修复
在 safe_html 输出中防止自动关闭空标签。 [cekk] (#43)
3.1.12 (2021-09-15)
错误修复
当将某些 html 转换为文本时修复 "ValueError: invalid literal for int() with base 10" 错误。 [pbauer] (#46)
3.1.11 (2021-06-30)
错误修复
在 safe_html 转换中将 cleaner_options 方法从 scrub_html 中分离出来。这使得它可以更容易地进行猴子补丁或子类化。 [maurits] (#44)
REST 转换:忽略警告和样式表关键字参数。它们可能被滥用。来自 Products.PloneHotfix20210518。 [maurits] (#3274)
3.1.10 (2020-09-21)
错误修复
修复无效的转义序列。 [maurits] (#3130)
3.1.9 (2020-09-07)
错误修复
修复 DocumentTemplate.DT_Util.html_quote 的弃用警告。 [maurits] (#41)
3.1.8 (2020-04-23)
错误修复
次要包装更新。 (#1)
使用来自标记控制面板的 markdown 扩展设置。 [pabo3000, thomasmassmann] (#30)
3.1.7 (2019-05-21)
错误修复
修复:“DeprecationWarning: Flags not at the start of the expression” [jensens] (#40)
3.1.6 (2019-03-02)
错误修复
当将表单标签添加到有效标签时,无论如何不要删除它。默认情况下,cleaner 总是会删除表单标签和按钮、输入、选择和文本区域标签,修复了 问题 2693。 [maurits] (#2693)
3.1.5 (2018-11-01)
错误修复
一些转换在 Python 2 中返回 unicode 而不是字符串 (#37)
修复 scrub_html 传递 unicode 时的错误 [pbauer] (#38)
3.1.4 (2018-09-23)
错误修复
修复 Python 3 的测试 [petschki]
3.1.3 (2018-06-21)
错误修复
开始修复 py3 中的启动 [ale-rt, pbauer]
停止使用 ATTestCase 进行测试。 [davisagli]
3.1.2 (2018-02-05)
错误修复
添加 Python 2 / 3 兼容性。 [maurits]
3.1.1 (2017-11-24)
错误修复
不要在 safe_html ZMI 设置页面上公开已删除的设置。这修复了 Products.CMFPlone #2130 [jensens]
3.1 (2017-09-03)
破坏性更改
修复并完全将 safe_html 过滤器迁移到 Plone 注册表,并与 TinyMCE 同步设置。还删除了控制面板中的某些未使用选项,例如 stripped_combinations 和 class_blacklist。 [MrTango]
3.0.0 (2017-04-02)
破坏性更改
使用 lxml.html.Cleaner 进行安全的 HTML 转换(PLIP 1441)[prakharjoshi, tomgross]
2.2.2 (2017-02-20)
新功能
通过 zmi 添加切换 markdown 扩展的可能性。 [pabo3000]
2.2.1 (2016-08-19)
修复
修复了 rest 转换与旧 Zope2 reStructuredText 包装之间的回归:标题现在在主体设置中为正确级别,这对于保留下游使用此转换(例如 Archetypes)中假设的级别是必要的。行为现在与先前的包装相匹配。 [seanupton]
2.2.0 (2016-02-14)
新功能
由于 rest 包装已从 zope2 中删除,因此使用 docutils 进行 rest。 [pbauer]
依赖 Pillow>=3.1.0。 [jensens]
为 Markdown 转换添加 fenced_code_blocks 扩展并依赖 Markdown >=2.6.5。 https://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html [pcdummy]
修复
修复:使用 Pillow>=3.1.0 后修复 TIFF 测试输出以适用于此新版本的 Pillow,在 IFD 标头中用 dword 而不是 word 作为类型写入宽度。 [jensens]
修复 TransformTest 的输出,以便在失败的情况下不包含二进制文件。这破坏了测试结果解析器。 [jensens]
清理:autopep8、isort 排序导入、utf8 标头、安全装饰器、zca 装饰器、一些手动编辑 [jensens]
使测试与除 Ubuntu 14.04 之外的操作系统兼容。 [do3cc]
2.1.10 (2015-09-15)
添加 iframe 作为有效标签 [vangheem]
2.1.9 (2015-09-04)
修复在script标签中存在实体时safe_html的Unicode问题[陷阱]
2.1.8 (2015-08-20)
修复错误:配置错误的转换会导致:“AttributeError: ‘NoneType’对象没有属性‘items’” [vangheem]
2.1.7 (2015-06-24)
修复safe_html在
移除CMFDefault依赖[tomgross]
2.1.6 (2015-04-22)
当未禁止时,不要对script标签内的<、>和&进行转义[陷阱]
2.1.5 (2015-03-13)
如果mimetype已经在测试中注册,则不要使测试失败[timo]
更新输出gif;Pillow 2.7.0不再优化RGB模式的gif调色板[davisagli]
2.1.4 (2014-09-07)
当sub在Unicode字符串上运行时,不要强制使用utf-8。这修复了在包含非ASCII字符的Unicode字符串中匹配时的unicodedecodeerror [tmog]
2.1.3 (2014-01-27)
没有变化。
2.1.2 (2012-12-09)
调整safe_html转换以阻止各种XSS漏洞。这修复了https://plone.org/products/plone/security/advisories/20121106/18 [davisagli]
2.1.1 (2012-10-05)
不要尝试处理无效的标签:我们假设来自转换器的HTML输出不包含embed、script、object或applet标签。
2.1 (2012-10-05)
在word_to_html转换中避免在js属性和无效标签上抛出异常[陷阱]
如果转换为safe_html,则在数据和属性中平等地(未更改)处理charrefs & entityrefs [tom_gross]
2.0.7 - 2011-07-04
以下三个更改共同修复了http://plone.org/products/plone/security/advisories/CVE-2011-1949
在safe_html转换中,如果找到破损的声明,则中断解析[evilbungle, davisagli]
在safe_html转换中,移除data URI[davisagli]
在safe_html转换中,在检查具有脚本的未安全属性时忽略null字节[davisagli]
2.0.6 - 2011-04-03
更新RoleManager导入以避免在Zope 2.13上的弃用警告[davisagli]
2.0.5 - 2011-02-26
修复由于在2.0.4中添加的安全声明而导致的回归:convertTo仍然应该是公开的,但不应该是可发布的[davisagli]
2.0.4 - 2011-02-25
修复缺失的安全声明[davisagli]
2.0.3 - 2010-11-24
修复由于某些重构意外将manage_options转换为元组的问题[swampmonkey]
添加缺失的url元数据[hannosch]
2.0.2 - 2010-10-27
在configureTransform.zpt中正确关闭<p>标签[swampmonkey]
将HTML5标签添加为有效:article、aside、audio、canvas、command、datalist、details、figcaption、figure、footer、header、hgroup、keygen、mark、rp、rt、ruby、section、source、summary、time、video。[limi]
2.0.1 - 2010-07-18
使用标准库的doctest模块[hannosch]
将padding-left添加到样式白名单中,以便让TinyMCE的缩进工作。这关闭了http://dev.plone.org/plone/ticket/10557。[hannosch]
对safe_html转换进行PEP8调整[hannosch]
2.0 - 2010-07-16
降低转换测试的测试要求,只检查每个文件的开始。在机器上,确切的输出存在太多的细微差异。[hannosch]
转换引擎代码的PEP8清理[hannosch]
2.0b6 - 2010-06-13
重复safe_html转换以阻止恶意HTML注入向量。感谢evilbungle的报告。[MatthewWilkes]
2.0b5 - 2010-04-10
更优雅地处理空转换列表的mimetype映射。修复:http://dev.plone.org/plone/ticket/10402,参考:r12421。[thet]
修复了缓存会返回数据的问题,这些数据来自对虚拟主机敏感的转换(如视觉编辑器使用的resolve UID转换),这些数据已为不同的虚拟主机缓存[rossp]
2.0b4 - 2010-03-01
从1.6分支恢复output/logo.jpg和output/logo.bmp[stefan]
2.0b3 - 2010-02-19
使用poppler的pdftohtml转换器使测试通过。独立的pdftohtml产生不同的输出,应避免使用。[stefan]
2.0b2 - 2010-02-05
更新了预期输出图像至最新格式。[hannosch]
2.0b1 - 2010-01-03
修复了在查找变换路径算法中的严重性能问题。此问题参照 http://dev.plone.org/plone/ticket/9497。[hannosch, sig]
防止变换引擎失败,这阻止了网站的 zexp 导入。[hannosch]
修复了包依赖声明。[hannosch]
2.0a2 - 2009-12-02
将 HTML5 标签添加为允许的标签。[limi]
确保元标签被移除,因为不这样做可能会导致像 HTML 重定向这样的东西漏过,这会导致不可预测的行为。[limi]
为丑陋的标签添加了样式,解决了 http://dev.plone.org/plone/ticket/9015。[jonstahl]
2.0a1 - 2009-11-13
在 safe_html 变换中添加了 stripped_attributes、stripped_combinations、style_whitelist 和 class_blacklist 属性。[robgietema]
避免获取 mimetypes_registry 并通过合适的 API 调用它。[hannosch]
将关于不可用二进制文件的日志消息降级为调试级别。[hannosch]
更新测试输出以兼容 docutils 0.5。[hannosch]
删除了 z3 子包。接口在 interfaces 模块中。[hannosch]
清理了包元数据。[hannosch]
在额外文件中声明测试依赖,并修复了使用 Globals 的弃用警告。[hannosch]
使图测试有条件地依赖于变换外部二进制文件的可用性。[hannosch]
删除了无用的断言语句。[hannosch]
在 Zope 2.12 中,结构化文本已不再存在。[hannosch]
变换到 mimetypes_registry 中具有多个别名 mimetypes 的目标 mimetypes 失败。此问题已关闭 http://dev.plone.org/plone/ticket/8187。[hannosch]
在库未安装的情况下,向 markdown 和 textile 变换添加了日志记录。此问题已关闭 http://dev.plone.org/plone/ticket/8285。[hannosch]
为了与 Zope 2.12 兼容,清除旧的 Zope2 Interface 接口。在检查在 Plone 4 之前需要发布之前,考虑分支。[elro]
1.6.4 - 2009-10-08
在内存错误和失败转换后清理临时文件/目录。[witsch]
1.6.3 - 2009-09-09
修复了 CDATA 部分的处理。[optilude]
1.6.2 - 2009-06-18
修复了 purgeCache 方法中的 NameError。[davisagli]
修复了不安全变换调用命令行插件输入文件的方式。[encolpe]
使 markdown 变换对 Unicode 安全,并依赖于 Markdown>=1.7。[tomster]
1.6.1 - 2008-09-30
当在 Zope 2.11 上运行时,修复了 rest 测试。原始和 include 指令已禁用,但不再被删除。[hannosch]
当它们的库未安装时,禁用了 markdown 和 textile 测试。[fschulze]
在 html 到纯文本转换中实现了实体转换。[fschulze]
将 metadata.xml 文件添加到配置文件中。[hannosch]
默认允许 abbr、acronym、var、dfn、samp、address、bdo、thead、tfoot、col 和 colgroup 标签,因为它们是无害的、有效的 XHTML,不应该被过滤。修复了:http://dev.plone.org/plone/ticket/6712 和 http://dev.plone.org/plone/ticket/7251。[limi]
添加了适当的 Z3 接口,并用直接实现语句代替了稍后通过 zcml 应用更改。减少了 zcml 文件的数量到一份。[hannosch]
1.6.0 - 2007-08-16
1.6.0-rc2 - 2007-07-27
将 componentregisty.xml 更新为新样式。[hannosch]
1.6.0-rc1 - 2007-07-04
1.6.0-b4 - 2007-04-28
回到使用 getToolByName 对 CMF 工具进行操作。[wichert]
1.6.0-b3 - 2007-03-20
删除了 tests/runalltests.py 和 tests/framework.py,因为它们已经过时。要运行测试,请使用 Zope 的 testrunner:./bin/zopectl test –nowarn -s Products.PortalTransforms。[stefan]
1.6.0-b2 - 2007-03-05
调整了 Zope 2.10 输出的 rest 测试。[hannosch]
1.6.0-b1 - 2007-02-27
XXX 请在做出更改时使用 HISTORY.txt
1.6.0-a1 - 2007-02-06
实现了 PLIP 149。[tomster]
1.5.2 - 未发布
添加了处理额外括号的另一个XSS修复。[dunny]
从Anton Stonor那里添加了XSS修复到safe_html转换。[alecm, stonor]
1.5.1-final - 2007-04-17
给发布管理员的备注:版本提升到1.5有些过早,但现在我们有了它,我保留它,并且下一个发布号在Archetypes 1.4.2(用于Plone 2.5.2)的周期中是1.5最终版。由于Plone 3.0、Archetypes 1.5等,如果没有更改依赖产品(如本产品),我们不需要增加发布号。[jensens]
1.5.0-final - 2006-12-15
1.5.0-a1 - 2006-10-25
在类型检查之前进行int类型转换是邪恶的。所以我们假设像CMFPlone一样,对于无法转换为int的值使用零。[jensens]
通过ZMI修改时,safe_html有效标签字典中的值可以变为字符串。在测试它们的值之前,请显式地将它们转换为整数。[wichert]
1.4.1-final - 2006-09-08
关闭了一个嘈杂的DEBUG级别日志消息。[hannosch]
将日志基础设施从zLOG使用转换为Python的logging模块。[hannosch]
避免manageAddDelete的DeprecationWarning。[hannosch]
清理测试基础设施。[hannosch]
1.4.0-beta1 - 2006-03-26
移除了奇特的archetypes 1.3风格的版本检查。[jensens]
移除了CMFCorePermissions导入位置的BBB代码。[hannosch]
移除了关于ToolInit的弃用警告。[jensens]
1.3.9-final02 - 2006-01-15
没有变化 - 奇特的版本检查需要版本更改以保持与Archetypes版本的一致。[yenzenz]
1.3.9-RC1 - 2005-12-29
修复了问题[1293684],未注册的转换没有被卸载,转换已从portal_transforms中删除,但仍然处于活动状态。[csenger] 在重新安装时添加了一个清理,卸载已删除的转换。
将safe_html转换替换为具有相同功能的可配置版本。迁移在重新安装时处理。[csenger] [dreamcatcher]
移除了CoUnInitialize调用。根据Mark Hammond的说法:正确的事情是调用该函数,尽管几乎没有人这样做(包括pywin32本身,它在主线程中调用CoInitialize)并且我从未听说过由此遗漏引起的问题。[sidnei]
修复了一个长期存在的问题,即不正确的COM线程模型初始化。初始化COM以支持多线程,忽略其他人以不同方式初始化时发生的任何错误。[sidnei]
纠正了一些错误的安全设置。[hannosch]
修复了从策略中查找需求的问题(#1358085)
1.3.8-final02 - 2005-10-11
没有变化 - 奇特的版本检查需要版本更改以保持与Archetypes版本的一致。[yenzenz]
1.3.7-final01 - 2005-08-30
没有变化 - 奇特的版本检查需要版本更改以保持与Archetypes版本的一致。[yenzenz]
1.3.6-final02 - 2005-08-07
没有变化 - 奇特的版本检查需要版本更改以保持与Archetypes版本的一致。[yenzenz]
1.3.6-final - 2005-08-01
根据limi的要求,将q添加到有效和安全的HTML标签列表中。编写了safe_html解析的测试。[hannosch]
将ins和del添加到有效和安全的HTML标签列表中。[1199917] 在safe_html转换期间移除了XHTML DEL标签。[tiran]
1.3.5-final02 - 2005-07-17
更改版本以保持与适当的Archetypes版本一致。[yenzenz]
1.3.5-final - 2005-07-06
pdf_to_html现在可以显示图像。将其还原为命令转换器并在Windows下工作。[panjunyong]
改进基于命令的不安全转换,使其能够在Windows下工作。[panjunyong]
默认禁用office_uno,因为它尚不支持多线程。[panjunyong]
重新编写office_uno以使其适用于最近的PyUNO。[panjunyong]
1.3.4-final01 - 2005-05-20
没有变化(我讨厌写这个。但是奇特的版本检查需要它)。[yenzenz]
1.3.4-rc1 - 2005-03-25
改进了safe html转换的错误处理。[tiran]
1.3.3-final - 2005-03-05
更新了rtf转换器的链接到http://freshmeat.net/projects/rtfconverter/ [tiran]
对COM办公转换器的微小修复。如果Word不可见,COM可能会崩溃。退出Word时可能还会出现弹出窗口。[gogo]
修复了 [ 1053846 ] wvware word_to_html 转换的字符集问题[flacoste]
修复了Python和测试预转换以使用HTML引号特殊字符。感谢stain。[ 1091670 ] Python源代码没有对HTML进行转义。[tiran]
修复了 [ 1121812 ] PortalTransforms unregisterTransformation() unregisterTransformation() 未从zodb中删除添加到转换的持久化包装器 [dan_t]
修复了 [ 1118739 ] popentransform在Windows上不起作用 [duncanb]
修复了 [ 1122175 ] office_uno.py中的额外缩进语法错误 [ryuuguu]
修复了一些转换器的临时文件名问题:它尝试使用原始文件名,该文件名以UTF8编码,可能对我的Windows服务器造成无效字符集限制。只需使用文件名:unknown.suffix [panjunyong]
将STX标题级别设置为2,而不是使用zope.conf。Limi迫使我改变它。[tiran]
修复了word_to_html在Windows下使用office_com的bug
1.3.2-5 - 2004-10-17
修复了 [ 1041637 ] RichWidget:STX级别应设置为3而不是1。结构化文本转换现在使用zope.conf选项或convert方法中的可选级别参数。[tiran]
将win32api.GetShortPathName添加到libtransforms/commandtransform,以便在目录名称中包含空格的目录中找到的二进制文件能够按预期工作 [runyaga]
1.3.2-4 - 2004-09-30
没有更改
1.3.2-3 - 2004-09-25
修复了更多的单元测试 [tiran]
1.3.2-2 - 2004-09-17
修复了 [ 1025066 ] 严重的持久性bug [dmaurer]
修复了一些单元测试失败。一些单元测试失败是因为reST和STX输出略有变化。[tiran]
不要包括lynx输出的前三行,它们是url、标题和空白行。这还修复了一个单元测试,因为url(在fs中的文件)每次都会更改。[tiran]
修复了make_unpersistent中的bug。似乎这个方法触动了映射中的值。[dreamcatcher]
1.3.2-1 - 2004-09-04
禁用了从1.3.1-1引入的过滤器。当前使用的转换路径算法已损坏,查找路径花费了太长时间。[tiran]
通过删除已损坏的Python仅实现,清理了PT的主要部分
修复了 [ 1019632 ] 当前svn bundle(rev 2942)损坏
1.3.1-1 - 2004-08-16
引入了过滤器(单跳转换,其中源和目标都是相同的MIME类型)的概念。[dreamcatcher]
添加了html过滤器以提取body标签的内容(这样在上传完整的HTML文件时就不会得到重复的<body>)。[dreamcatcher]
将Transform的基类更改为SimpleItem,它与以前的基类等效,并提供了一个不错的__repr__。[dreamcatcher]
降低日志级别。[dreamcatcher]
cache.py:添加了purgeCache,修复了has cache测试。[tiran]
修复了错误消息中的非关键拼写错误。[tiran]
1.3.0-3 - 2004-08-06
向convert、convertTo和__call__方法添加了上下文。上下文是转换被调用的对象。[tiran]
向idatastream(data.py)添加了isCacheable标志和setCacheable。现在您可以禁用转换结果的缓存。[tiran]
添加了__setstate__以从文件系统加载新转换。[tiran]
修复了 [ 1002014 ] 添加策略屏幕不接受单个条目 [tiran]
1.3.0-2 - 2004-07-29
为 [ 997998 ] PT破坏ZMI/Find添加了解决方案 [tiran]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
哈希值 for Products.PortalTransforms-4.1.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1f504f5cf9381ea8dea60be10e78408eac9bb2ee045136da1956b650c61644b7 |
|
MD5 | 28e16f62782aa1b3412d8d34350bd086 |
|
BLAKE2b-256 | 4b0698b0b976a5e4136acaba82fc893bb94a4fe828a6077c8c90269495099259 |