content: table block (table.sx) + 15 tests (448/448)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 36s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 36s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ injected adapter, not core.
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/content/conformance.sh` → **433/433** (Phases 1–4 COMPLETE + 11 extensions: HTML/SX escaping, Markdown render+import, CRDT replication, tree-aware validation, snapshot cache, doc metadata, plain-text render, nested block trees, doc stats)
|
||||
`bash lib/content/conformance.sh` → **448/448** (Phases 1–4 COMPLETE + 12 extensions: HTML/SX escaping, Markdown render+import, CRDT replication, tree-aware validation, snapshot cache, doc metadata, plain-text render, nested block trees, doc stats, table block)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -87,9 +87,16 @@ lib/content/api.sx ── (content/edit) (content/render) (content/history) ─
|
||||
- [x] plain-text render + excerpt (`text.sx`: asText, content/excerpt)
|
||||
- [x] nested block trees (`section.sx`: CtSection container, recursive render, deep-find)
|
||||
- [x] document statistics (`stats.sx`: word/char/block counts, reading time)
|
||||
- [x] table block (`table.sx`: CtTable, renders html/sx/text/md, validated)
|
||||
|
||||
## Progress log
|
||||
|
||||
- 2026-06-07 — Extension: table block (`table.sx`). `CtTable` holds headers +
|
||||
rows (string lists); answers asHTML (escaped `<table>`), asSx, asText, and
|
||||
asMarkdown: (pipe table with dashed separator row) by folding rows×cells via
|
||||
nested `inject:into:`. Self-contained (no edits to block.sx/render.sx);
|
||||
`mk-table`, `table?`, `table-headers/rows`. validate.sx gained a `table` field
|
||||
case (headers/rows must be lists). 15 tests; suite 448/448.
|
||||
- 2026-06-07 — Extension: document statistics (`stats.sx`). `content/stats`
|
||||
returns `{:words :chars :blocks :reading-minutes}`; word/char counts derive
|
||||
from the tree-accurate `asText` projection, block count from an inline tree
|
||||
|
||||
Reference in New Issue
Block a user