使用Volto将旧Plone站点导入到新站点
项目描述
为redturtle.importer.base插件,用于将旧站点迁移到新Volto启用站点。
功能
为具有启用 volto.blocks 行为的内容类型,为 redturtle.importer.base 提供了一个新的适配器,它将富文本从html (TinyMce) 转换为json (DraftJs/blocks)。
HTML到DraftJs转换器
对于启用了块的内容类型,我们需要将旧式HTML文本转换为DraftJs兼容的数据结构。
完成此操作的最佳库是官方库,仅适用于JavaScript。
因此,为了转换HTML,我们需要在我们的buildout中设置一个环境变量,其中包含其地址:https://github.com/RedTurtle/draftjs-converter
这是一个接受一些HTML并返回其DraftJs转换版本的nodejs rest api。
要使用此API,我们需要在我们的buildout中设置一个环境变量,其中包含其地址。
environment-vars += ... DRAFTJS_CONVERTER_URL http://localhost:3000/html_converter
块转换
RichText值中的每一部分都应该转换为Volto块元素。
某些部分可以转换为特定的块(例如表格、图片、嵌入项)。其他标准HTML元素则转换为包含DraftJs数据结构的 text 块。
在将文本转换为块时,我们做了一些假设。
每个段落都是一个新块
这使得编辑器可以移动文本,在段落之间插入元素等。
图片被包裹在一个单独的段落中
在启动转换工具之前,我们将每个图片包裹在一个单独的段落中。
这样我们就可以在Volto中将它们作为“图片块”处理。
图片大小转换
在Plone中,文本中的图片也可以有缩略图(Plone中的图片缩放)。
在Volto中,目前只有3种可用大小(S、M、L),因此我们将Plone缩放映射到这3种大小。
类型转换
如果内容类型启用了volto.blocks
行为并且有一个text
字段,该字段将转换为块。
Collection
内容类型将被转换为带有其条件过滤器的Document
。
具有默认视图的Folders
将被转换为具有这些规则的Document
内容类型。
如果默认视图是
Collection
内容类型,我们将创建一个带有其条件过滤器的listing block
。如果默认视图是
Document
或News Item
,我们将将其文本转换为块。如果文件夹没有默认项目作为视图,我们将创建一个显示一级内容的
listing block
。
安装
通过将其添加到您的buildout中安装redturtle.importer.volto
[buildout] ... eggs = redturtle.importer.volto
然后运行bin/buildout
您不必安装它。这样,在数据迁移之后,您可以从buildout中删除它,并且一切都很干净。
贡献
鸣谢
本产品是在以下机构的帮助下开发的
许可证
该项目根据GPLv2许可。
贡献者
RedTurtle Technology, sviluppoplone@redturtle.it
变更日志
1.0.0 (2020-12-18)
初始发布。 [cekk]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
redturtle.importer.volto-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ada1d5545c204c65ba17a56f8206d769e22248b920994e48aa0b4c946104e298 |
|
MD5 | f0d3bd92d5d70a790ad21867732bc367 |
|
BLAKE2b-256 | aa49733ae134902423920050879ef51291e18061d44f484cd231e1ce65c08a16 |