- Share a note as a live read-only page at /s/{token} with optional password and expiry
- Share page renders with the shared parser (TOC, footnotes, math, Mermaid, code highlighting)
and only serves images from the note's own .assets directory
- Shares follow renames made through the API or externally
- Manage shares and API tokens from the command palette and file tree
- Accept read/write API tokens as Bearer credentials; management endpoints require a session
- Serve a hand-written openapi.json, checked against the route table in tests
- Parser extensions shared by the editor and the HTML renderer: ==highlight==, $inline math$
(Pandoc rules, so amounts like $5 are not math), $$ math blocks, footnote references and
definitions, [TOC], and YAML front matter
- Live preview: highlight, superscript/subscript, emoji names (gemoji), footnote references
with the definition as tooltip, a clickable table of contents, styled front matter
- Math (KaTeX) and Mermaid render in place; while editing a block the source is shown with a
live preview below. KaTeX, Mermaid and the emoji table are loaded only when a note uses them
- KaTeX is pinned to 0.18 so Mermaid shares the same copy
- Move editor focus tracking out of table.ts so block widgets and tables use the same state
- Top-level GFM tables render as an editable widget: click a cell to
edit its Markdown source, Tab/Enter/arrows to navigate, toolbar to
insert/delete rows and columns or switch to source
- Structural table edits are isolated undo steps; focus is restored
after the widget is rebuilt
- Clicking an image moves the cursor to its syntax to reveal the source
- Renderer escapes raw HTML and filters dangerous URL schemes by default
- CodeMirror 6 editor with Obsidian/Typora-style live preview: block
markup revealed per line, inline markup revealed per element
- Fenced code highlighting via Shiki (github-dark, JS regex engine) in a
Web Worker, languages loaded on demand
- Lezer syntax tree to HTML renderer for share pages, checked against
the CommonMark 0.31.2 spec (640/652; 12 known parser deviations)
- Use markdownLanguage directly to avoid bundling lang-html/css/js