Changelog#

1.0.0a8 (2026-10-26)#

Feature#

  • Added support for Markdown as an input format: markdown_to_blocks() and source_format="markdown" in the Python API, .md/.markdown files and --format in the convert command, and a POST /markdown endpoint with a format field on POST /volto. @ericof #37 #37

  • Declared Python 3.14 support in the package classifiers and added a Python 3.14 job to the test matrix, so the supported versions are now tested. @ericof #40

Bugfix#

  • Exit cleanly when the source file given to html2blocks convert is missing: the command now stops right after reporting the problem, with exit code 1 and no traceback. @ericof #39 #39

Documentation#

  • Revised the documentation to the current Plone documentation standard, organized by Diátaxis section, and documented HTML and Markdown input for the Python API, the command line and the HTTP service. Replaced the Read the Docs configuration with the GitHub Pages site. @ericof #43 #43

1.0.0a7 (2026-10-22)#

Bugfix#

  • Read the height of an iframe from its style attribute when it has no height attribute, instead of falling back to 200px. @ericof #35

  • Kept tables, iframes and images nested in a wrapper element (<section>, <article>, or a <div> with siblings) in document order, instead of placing them before the text around them. @ericof #35

1.0.0a6 (2026-06-01)#

Bugfix#

  • Kept text following a run of consecutive inline elements (e.g. two adjacent <b> tags) inside its parent paragraph, instead of splitting it out as a sibling block. @ericof #31

  • Preserved underline and strikethrough styling declared on a <span> via the text-decoration CSS property, converting them to u and s slate elements instead of dropping the formatting. @ericof #32

  • Fixed deeply-nested <div> structures producing non-renderable Slate blocks: dropped null entries and type-less nodes, stopped emitting <p> inside <p>, and collapsed runs of empty paragraphs into a single one. @ericof #33

1.0.0a5 (2026-05-18)#

Bugfix#

  • Fixed <ul> and <ol> elements that contain orphan text without <li> children: the content is now wrapped into a synthetic <li> so it survives conversion instead of being silently dropped. @ericof #29

1.0.0a4 (2026-05-15)#

Feature#

  • Also publish container images for arm64. @ericof #20

Bugfix#

  • Better handling of tables. @ericof #22

  • Fixed conversion of paragraphs starting with an inline element wrapping only whitespace (e.g. <b>&nbsp;</b>) — the rest of the paragraph text was being silently dropped from the Slate value while plaintext stayed correct. @ericof #25

  • Normalized whitespace in the Slate plaintext attribute — non-breaking spaces and runs of consecutive whitespace are now collapsed into a single space, so search and preview behave consistently. The Slate value (node text) is left untouched. @ericof #26

  • Fixed conversion of images wrapped in an inline element (e.g. <b>, <strong>) inside a paragraph — the images are now correctly emitted as Volto image blocks instead of being silently dropped along with the surrounding wrapper. @ericof #27

1.0.0a3 (2025-10-04)#

Bugfix#

  • Ensure correct type for each item handled in collective.html2blocks.utils.slate.process_top_level_items. @ericof #18

Internal#

  • Do not package the build documentation with the source package. @ericof

  • Update vscode settings. @ericof

Documentation#

  • Documentation: Ignore CHANGELOG.md during vale checks. @ericof

1.0.0a2 (2025-09-12)#

Bugfix#

  • Fix issue with packaging collective.html2blocks as a wheel. @ericof

Documentation#

1.0.0a1 (2025-09-11)#

Feature#

  • Implemented collective.html2blocks.converters.volto_blocks function [@ericof] #4

  • Initial implementation of collective.volto2blocks [@ericof]

  • Wrap block elements -- like img, video, table -- in their own paragraph if nested inside an existing paragraph. @ericof

Bugfix#

  • Handle headers (h1, h2) that contain only an image inside [@ericof] #5

  • Do not generate a slate block for empty lists. @ericof #6

  • Top level items in a Slate block should be wrapped in a paragraph. @ericof #8

  • Better handling of
    tags. @ericof

  • Fix table rows duplicating the number of cells due to the existence of line breaks or comments @ericof

Internal#

  • Implement GitHub Actions workflows. @ericof

Documentation#

  • Base documentation for collective.html2blocks. @ericof #1