Blockdown for VS Code
Block-based markdown editor inside VS Code. Opens .md files in a Jupyter-style rendered view where each heading, paragraph, list, code block, table, and mermaid diagram is a selectable, navigable block. Drop into an in-place CodeMirror editor for a single block, render back, keep moving.
Backed by the standalone blockdown editor — same rendering, same keybindings, same feel — but with real VS Code file integration: dirty state, save, external edits, workspace-relative settings.
Install
Not yet on the marketplace. Install from a locally built .vsix:
git clone https://github.com/FloG309/blockdown.git
cd blockdown/extension
npm install
npm run package # produces blockdown-vscode-<version>.vsix
code --install-extension blockdown-vscode-*.vsix
Use
Editing model (same as standalone)
| Key |
Action |
| Arrow Up/Down |
Navigate blocks |
| Shift+Arrow Up/Down |
Multi-select |
| Enter |
Edit selected block(s) |
| Escape |
Deselect / exit edit |
| Shift+Enter |
Render and exit edit |
a / b |
Insert block above / below |
c / v / x |
Copy / paste / cut blocks (internal clipboard) |
d d |
Delete selected blocks |
| Ctrl+A |
Select all |
| Ctrl+Z / Ctrl+Y |
Undo / redo |
All shortcuts are remappable from the gear-icon settings panel → Shortcuts.
What syncs where
- Document text — authoritative in VS Code's
TextDocument. Blockdown reflects it; edits in Blockdown apply as WorkspaceEdits so save / dirty / hot-exit all work. External edits to the same file update the webview.
- Layout settings (theme, font size, line height, spacing, content width) — per workspace via
Memento.workspaceState.
- Keybindings — global via
Memento.globalState, so a custom binding follows you across projects.
Known gaps
- Markdown → HTML → markdown round trip is not identity-preserving; opening some files may produce a
dirty state on first edit due to minor whitespace normalization by Turndown.
- Very large files (500+ KB): every keystroke schedules a serialize + apply. Fine for typical docs; unrefined for book-sized manuscripts.
- One CodeMirror instance per block in edit mode. Opening 100+ blocks into edit mode simultaneously will be slow.
License
ISC (see LICENSE).