v4.3.0 - DIVI 5 + Elementor 4 Atomic + Oxygen 6 native support
What's New in v4.3.0
Picks up the three items v4.2 explicitly deferred. v4.2 shipped detection-only helpers for DIVI 5, Elementor 4 Atomic, and Oxygen 6 — content matching those signatures passed through untranslated. v4.3 wires native parser + converter pairs for all three, plus a correctness fix for the Bricks converter.
Framework Coverage
| v4.2 | v4.3 | |
|---|---|---|
| Frameworks | 11 | 14 |
| Translation pairs | 110 | 182 |
New Framework Parsers + Converters
| Framework | Format | Status |
|---|---|---|
divi-5 |
WordPress block markup (wp:divi/* namespace) |
Native — schema per public block-json-reference |
elementor-4 |
Atomic Editor JSON (e-div-block, e-flexbox, e-grid, e-heading, e-paragraph, e-button, e-image, e-form) |
Native — schema per Elementor developer docs |
oxygen-6 |
Nested JSON tree with EssentialElements\* namespaced types |
Proxy — Oxygen 6 was rebuilt on the Breakdance codebase (~80% shared); shipped against the documented Breakdance schema |
Each new framework registers in both DEVTB_Parser_Factory and DEVTB_Converter_Factory with sensible aliases (divi5, elementor4, elementor-atomic, oxygen6).
Automatic Routing
The legacy parsers now short-circuit when they see content from their successor:
DEVTB_DIVI_Parser::parse()returns[]whenis_divi5_payload()matches block-comment content (<!-- wp:divi/* -->)DEVTB_Elementor_Parser::parse()returns[]whenis_atomic_v4_payload()matches (elType: e-*orversion >= 4)DEVTB_Oxygen_Parser::is_oxygen6_payload()exposes the same pattern for callers routing around the legacyct_*path
Bricks Correctness Fix
The PHP Bricks converter was emitting nested child element objects inside children[] — wrong against every Bricks Builder version. v4.3 refactors to the real Bricks 2.x flat page format:
- Top-level array of elements, each with a string
parentid andchildrenarray of child id strings (not nested objects) DEVTB_Bricks_Parseraccepts both the new flat format and the legacy nested fixture shape- Python
bricks.pynow links direct-child ids back into each parent'schildrenarray
Structural assertion assertBricksFlatStructure runs on every *_to_bricks translation pair to prevent regression.
New Components
PHP:
translation-bridge/parsers/class-divi5-parser.phptranslation-bridge/parsers/class-elementor4-parser.phptranslation-bridge/parsers/class-oxygen6-parser.phptranslation-bridge/converters/class-divi5-converter.phptranslation-bridge/converters/class-elementor4-converter.phptranslation-bridge/converters/class-oxygen6-converter.php
Python:
src/translation_bridge/converters/divi5.pysrc/translation_bridge/converters/elementor4.pysrc/translation_bridge/converters/oxygen6.py
Test Deltas
| v4.2 baseline | v4.3 | |
|---|---|---|
| PHP tests | 208 | 284 |
| PHP assertions | 447 | 4003 |
| Python tests | 63 | 109 |
Pre-existing 41 errors / 3 failures unchanged (class-autoload mismatches not addressed by this release).
⚠️ Proxy Schema Disclosure
Oxygen 6 and parts of DIVI 5 / Elementor 4 were implemented against published documentation without verification against real exports. The structural shape (block delimiters, atomic field set, namespaced types, _nextNodeId book-keeping) is asserted by the test suite, but specific internal property keys may need a follow-up patch once real fixtures are available. Each proxy assumption is isolated to a single helper for mechanical correction:
- Oxygen 6:
ELEMENT_NAMESPACEconstant +build_propertieshelper - DIVI 5:
build_attrshelper (responsive value wrappers, content keys) - Elementor 4:
build_settingshelper (per-widget setting keys)
Full Changelog: v4.2.0...v4.3.0