feat(rte): table creation and editing UI (GFM envelope) #106
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle!106
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/95"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Editor affordances for rte tables, available only in bodies whose allow-set includes the opt-in
tabletoken (#94): a contextual Table ▾ toolbar menu following the existing Insert ▾ chip-menu pattern.What it does
removeRowintable.ts). On a header-only table it maps to delete-table, since prosemirror-tables'deleteRownever removes the last row.addRowBelowcopies each header cell'stextAlignonto the new row in the same transaction, so GFM column alignment renders immediately instead of after a save/reload round trip.Acceptance criteria → proof
table, absent under the 8-token default) + browser check against the scaffolded Quote element (norte-table).| | |\n| --- | --- |\n| | |\n| | |) is pinned in the markdown identity table (an unfilled saved table can never degrade to literal pipe text on reload); Go-sideTestBodySaveUITableAcceptedproves byte-identical body round-trip through the server gate, andTestPublishUITableRealHugopublishes a page carrying the emission through a real Hugo pre-flight build.Additionally verified end-to-end in real Chromium against
harness serveon a freshly scaffolded site: insert → type across cells with Tab → row/col ops → save; stored body is the exact canonical pipe table and the Hugo preview renders it in the theme'sce-tablescroll wrapper.scaffold/site/AGENTS.mdis deliberately untouched — no engine-contract surface changed (editor affordances are out of its scope; the token itself was documented in #94).Full suite green: 867 web tests / 42 files,
tsc --noEmitclean,go test ./...all packages incl. the real-Hugo integration tests.Closes #95
🤖 Generated with Claude Code
Landing validation — PASS
ci / build-and-test (pull_request)success (full suite, 8m25s) — relied on, not re-run.feat(rte): …). ✓afk/95, body carriesCloses #95. ✓mainis an ancestor ofafk/95— no conflict. ✓tabletoken from #94); theagentsdoc_test.godrift test passed in CI.Diff review confirmed sound: header-is-first-row invariant enforced at both the menu (disabled state) and command level (
removeRow);addRowBelowinherits header-celltextAlignin one transaction so GFM alignment renders without a reload; insert withheld inside a table (no nested tables); no "add row above". Ready to merge on maintainer go-ahead.