- Sample document gains an image block between the code block and the
table, showing figure/img/figcaption render in action.
- readPlainText demo helper gets an 'image' branch returning alt text
(was crashing the SSR with 'Cannot read properties of undefined
(reading map)' because image has no .children).
Demo screenshot confirms:
- Image renders inside a figure with border + padding
- Caption shows centered + italic below
- img max-inline-size cap keeps the image inside the editor frame
- Word/char count in status bar reflects alt + caption text
F3 MVP visually verified end-to-end:
- Block parses from markdown / HTML in the document model
- Renders correctly as figure/img/figcaption in the contenteditable
- Eidos styling (border, caption italic, alignment data-attr) applies
- Status bar counts include image alt text
Pending (UX surfaces, deferred to a follow-up session):
- F3.7 slash menu /image entry (open a URL prompt)
- F3.8 paste/drop handler with onUploadImage callback for file uploads
- F3.7/F3.8 require new svelte components (insert dialog, drop overlay)
and provider event handlers — they're isolatable from this commit's
surface and are the next sub-sprint.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>