## prefix, bold text keeps its ** delimiters, and list items show their - bullets — but you edit formatted text, not a plain-text buffer.
This means there is never a gap between what you see and what is stored. The document is markdown, and GET /api/docs/{id}/content returns exactly the source you’d expect.
Writing markdown
Markdown shortcuts convert as you type:
Undo (Cmd+Z or Backspace right after a conversion) reverts an unwanted auto-conversion back to the literal characters.
Supported markdown
Scribe’s document model is CommonMark, extended with two GFM features:- Strikethrough —
~~text~~. - Task lists —
- [ ]and- [x]items with clickable checkboxes.
Tables are not modeled in v1. Table markup is deliberately parsed as plain paragraph text and round-trips unchanged — a document containing a table can be edited in Scribe without corrupting it, but the table renders as its raw source.Raw HTML is also treated as inert text: it is never interpreted or rendered.
Round-tripping
The same parser and serializer run in the browser and inside the document’s Durable Object, built on a single shared schema. Content written through the editor, pasted in, or pushed throughPUT /api/docs/{id}/content all normalizes identically, so the API and the editor can never disagree about a document.
Preview mode
Click the Preview button in the document toolbar to switch to a read-only rendered view with no syntax markers — task lists render as (disabled) checkboxes and links are hardened to open in a new tab. Click again to return to editing. Preview state lives in the URL (?view=preview), so a preview link is shareable with anyone who can read the document.