Markdown Review
Inline review comments for Markdown files. Open a .md file in the Markdown Review editor, select rendered text in the preview, and the extension drops <!-- mdr-comment ... --> / <!-- mdr-range-start ... --> HTML comments back into the source. The annotated file feeds straight into AI workflows (Claude Code / Cursor / etc.) as a revision brief — no proprietary side-channel, the comments live in the document.

Why
Reviewing AI-generated documents is awkward in plain VSCode: leaving notes in a separate file loses context, and inline TODOs clutter the prose. Markdown Review lets you mark up the rendered preview the way you'd mark up a draft on paper, while keeping the source machine-readable for the next round.
Features
- Custom Editor "Markdown Review" — surfaces in Open With…, file/editor right-click menus, and the command palette.
- Side-by-side preview + comment list — comments anchor to their highlighted span, prev/next nav jumps between them.
- Selection-driven comments — drag in the rendered preview, click 创建评论, type a single line, press Enter to save. Selections snap to safe boundaries so comments never split a Markdown construct (heading prefix, list bullet, fenced code).
- Char-precise highlighting — multiple comments can share a line; same-line non-overlapping selections coexist.
- Cross-line range comments — wrap whole rows when the selection spans paragraphs.
- Editable / deletable — edit text inline, deleting scrubs the markers from source.
- Plays nice with the ecosystem — reuses
markdown.markdownItPlugins and markdown.previewStyles contributions, so plugins like bierner.markdown-mermaid keep working.
Usage
- Open any
.md file. Right-click → Open With… → Markdown Review (or Markdown Review: Open in Review View from the command palette).
- Drag-select rendered text in the preview. A floating toolbar appears.
- Click 💬 创建评论 → type your note → Enter saves.
- The source markdown gains an
<!-- mdr-* --> marker pair around the selection. Open the file in plain text mode anytime to see it.
Line comment — scopes to the paragraph above:
This paragraph needs work.
<!-- mdr-comment id="c-3f2a9k7x": rewrite for clarity -->
Range comment — wraps a span of content:
<!-- mdr-range-start id="c-9b2cw7xa": tighten this section -->
... markdown content ...
<!-- mdr-range-end id="c-9b2cw7xa" -->
Resolved comments are removed from the source (no status field — the source IS the truth).
Settings
| Setting |
Default |
Effect |
markdownReview.highlight.selectionBackground |
rgba(64, 158, 255, 0.18) |
Comment chip background, idle |
markdownReview.highlight.selectionBorder |
rgba(64, 158, 255, 0.45) |
Comment chip border, idle |
markdownReview.highlight.activeBackground |
rgba(64, 158, 255, 0.32) |
Background when card is focused |
markdownReview.highlight.activeBorder |
rgba(64, 158, 255, 0.85) |
Border when card is focused |
All take any CSS color string (#hex, rgb(), var(--vscode-...)).
License
MIT. Source on GitHub. For development and contribution notes, see DEV.md.