跳转到主要内容

使用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

  • 如果默认视图是DocumentNews Item,我们将将其文本转换为块。

  • 如果文件夹没有默认项目作为视图,我们将创建一个显示一级内容的listing block

安装

通过将其添加到您的buildout中安装redturtle.importer.volto

[buildout]

...

eggs =
    redturtle.importer.volto

然后运行bin/buildout

您不必安装它。这样,在数据迁移之后,您可以从buildout中删除它,并且一切都很干净。

贡献

鸣谢

本产品是在以下机构的帮助下开发的

kitconcept

许可证

该项目根据GPLv2许可。

贡献者

变更日志

1.0.0 (2020-12-18)

  • 初始发布。 [cekk]

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

redturtle.importer.volto-1.0.0.tar.gz (25.1 kB 查看哈希值)

上传时间: 源代码

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面