Skip to content

Fix paragraph save-shape regressions in SSI fixtures #604

Description

@chubes4

Problem

The focused SSI fixture matrix still emits invalid core/paragraph blocks on current Blocks Engine origin/trunk (c6bbd82a), despite #577 and #593 being present.

Affected fixtures:

  • 10-nonprofit: class="has-text-color has-text-color hero-sub"
  • 13-realistic-small-business: class="has-text-color has-text-color lead hero-desc"
  • 13-realistic-small-business: generated be-inline-geometry-* class and max-width:380px do not match the block comment/save shape
  • 74-lumen-coffee: class="has-text-color has-text-color hero__lead"

The real editor validation reports four invalid blocks:

Fixture Valid Invalid
10-nonprofit 210 1
13-realistic-small-business 217 2
74-lumen-coffee 117 1

All three otherwise retain 100% native conversion and zero core/html fallback in the measured front-page documents. The failure is deterministic serializer/save-shape disagreement, not visual parity gating.

Expected

Paragraph color and geometry conversion must produce block comment attributes and rendered HTML that round-trip through wp.blocks.validateBlock() without duplicate support classes or implementation-only geometry attributes.

Acceptance criteria

  • The three named fixtures produce zero invalid editor blocks.
  • Preset slug text produces exactly one has-text-color class while preserving author classes.
  • Paragraph margin-top:1rem;max-width:380px preserves geometry through a save-shape-compatible carrier without adding attributes core's save function omits.
  • Existing Fix PHP transformer text color class validity #577/Preserve inline geometry in generated block assets #593 unit coverage remains green and gains an end-to-end serialized-block validation regression covering the actual fixture path.
  • php-transformer tests, fixture matrix tests, and git diff --check pass.

This is a follow-up regression to #577 and #593 discovered by the four-fixture attribution wave.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions