Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions php-transformer/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. Entries are
## [0.4.10] - 2026-07-28

### Changed
- Convert strict two-pane media/text layouts to core/media-text
- Preserve label value row geometry
- Cover synthetic paragraph parity
- Reset synthetic paragraph margins
Expand Down
2 changes: 2 additions & 0 deletions php-transformer/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"php tests/unit/background-image-extractor.php",
"php tests/unit/cover-block-factory.php",
"php tests/unit/cover-pattern.php",
"php tests/unit/media-text-block-factory.php",
"php tests/unit/media-text-pattern.php",
"php tests/unit/cover-style-resolver.php",
"php tests/unit/css-stylesheet-transformer.php",
"php tests/unit/css-selector-matcher.php",
Expand Down
3 changes: 2 additions & 1 deletion php-transformer/docs/html-transform-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Run the coverage fixtures with `composer parity` or as part of `composer test`.
| Code | `html-core-text-structure.json` | `core/code`, `core/preformatted` |
| Tables | `html-core-media-actions.json` | `core/table` with head/body/caption attrs |
| Images | `html-core-media-actions.json`, `html-figure-quote-media.json` | `core/image` with URL, alt, dimensions, caption, identity, size, and class attrs |
| Media and text | `html-media-text.json` | `core/media-text` for strict two-pane image/video and text layouts with an authored horizontal mechanism (`display:flex`/`grid`, a usable grid template, or round-trip `wp-block-media-text` markup); matched `section`/`article` containers emit the block's canonical `div` wrapper; gates fail closed — mechanism-less containers, floated panes, unresolvable `var()` layout values, inherited RTL, and grid templates that cannot express a `mediaWidth` all decline into existing columns/group/author-layout handling |
| Buttons | `html-core-media-actions.json` | `core/buttons` containing `core/button` children |
| Shortcodes | `html-core-media-actions.json` | `core/shortcode` for standalone shortcode text |
| Wrapper provenance and safety | `html-provenance-wrapper-safety.json` | Presentational semantic wrappers are preserved as `core/group`; unsupported fallback records include selector/source metadata and sanitized fallback HTML |
Expand All @@ -28,7 +29,7 @@ Run the coverage fixtures with `composer parity` or as part of `composer test`.

| Category | Status | Notes |
| --- | --- | --- |
| Supported | Heading, paragraph, unordered/ordered list, quote, pullquote, code, preformatted, table, image, buttons/button, shortcode | Fixtures assert the block names and representative attrs currently emitted by `HtmlTransformer`. |
| Supported | Heading, paragraph, unordered/ordered list, quote, pullquote, code, preformatted, table, image, media-text, buttons/button, shortcode | Fixtures assert the block names and representative attrs currently emitted by `HtmlTransformer`. Media-text requires exactly two element children: one pure image/video side and one text-bearing side; ambiguous layouts retain existing columns/group behavior. |
| Unsupported fallback | Unknown/custom elements, SVG markup, form controls, other unsupported top-level HTML | Fallbacks use `type: unsupported_element`, include the source tag, selector, caller source/scope when provided, sanitized HTML, and increment `coverage.0.fallback_count`. |
| Context-required | Interactive/form behavior, embeds, advanced layout semantics, raw-handler hooks | These require WordPress/Gutenberg runtime context or richer product converter behavior and remain outside the PHP transformer's supported slice. |
| Gutenberg editor validation | Gap | The repository has no browser harness that boots Gutenberg, registers generated companion blocks, and validates load/edit/save output. `wp_block_validity` is a PHP structural and canonical save-shape check; the WordPress integration test and Playwright visual-parity tooling do not exercise the editor. |
Loading
Loading