Skip to main content

Importer from an old Plone Site into a new one with Volto

Project description

Plugin for redturtle.importer.base to migrate old site into a new Volto-enabled site.

Features

There is a new adapter for redturtle.importer.base for content-types with volto.blocks enabled behavior that converts rich text from html (TinyMce) to json (DraftJs/blocks).

HTML to DraftJs converter

For content-types with blocks enabled, we need to convert old-style HTML text to a DraftJs compatible data structure.

The best library to do this, is the officiale one that is only available for Javascript.

For that reason, to convert HTML we need to connect to an external tool: https://github.com/RedTurtle/draftjs-converter

This is a nodejs rest api that accept some html and returns its DraftJs converted version.

To use this api, we need to set an environment variable with its address in our buildout:

environment-vars +=
    ...
    DRAFTJS_CONVERTER_URL http://localhost:3000/html_converter

Blocks conversions

Every piece of a RichText value should be converted into a Volto block element.

Some pieces can be converted into a specific block (for example tables, images, embed items). Other standard html elements are converted into a text block that contains a DraftJs data structure.

We made some assumption when converting text into blocks.

Every paragraph is a new block

This allows editors to move text, insert elements between paragraphs, etc.

Images are wrapped into a separate paragraph

Before launching the conversion tool, we wrap every image into a separate paragraph.

In this way we can handle them as an “image block” in Volto.

Image sizes conversion

In Plone images in text can have also a miniature (images scales in Plone).

In Volto, right now, there are only 3 available sizes (S, M, L), so we mapped plone scales into these 3 sizes.

Types conversion

If a content-type have volto.blocks behavior enabled and a text field, that field will be converted in blocks.

Collection content-types will be converted into a Document with a listing block with its criteria filters.

Folders with a default view will be converted into a Document content-type with these rules for its blocks:

  • If default view is a Collection content-type, we create a listing block with its criteria filters.

  • If default view is a Document or News Item, we convert its text into blocks.

  • If the folder doesn’t have a default item as view, we create a listing block that shows first level contents.

Installation

Install redturtle.importer.volto by adding it to your buildout:

[buildout]

...

eggs =
    redturtle.importer.volto

and then running bin/buildout

You don’t have to install it. In this way, after the data migration, you can remove it from the buildout and everything is clean.

Contribute

Credits

This product has been developed with some help from

kitconcept

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.0.0 (2020-12-18)

  • Initial release. [cekk]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redturtle.importer.volto-1.0.0.tar.gz (25.1 kB view details)

Uploaded Source

File details

Details for the file redturtle.importer.volto-1.0.0.tar.gz.

File metadata

  • Download URL: redturtle.importer.volto-1.0.0.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for redturtle.importer.volto-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ada1d5545c204c65ba17a56f8206d769e22248b920994e48aa0b4c946104e298
MD5 f0d3bd92d5d70a790ad21867732bc367
BLAKE2b-256 aa49733ae134902423920050879ef51291e18061d44f484cd231e1ce65c08a16

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page