Synkdown
Synkdown is a Visual Studio Code Markdown editor extension focused on practical writing. It combines a clean WYSIWYG editing surface with synchronized Markdown source editing so users can draft visually, switch to raw Markdown whenever they need precise syntax control, and export PDF with per-run print parameters plus heading-based forced pagination.
Product Positioning
Synkdown is intended for users who write Markdown content in VS Code but do not want to stay in raw syntax all the time. It is suitable for general document authoring, knowledge-base writing, technical notes, project documentation, and mixed-content Markdown files that include formulas, diagrams, tables, and images.
Core Capabilities
- WYSIWYG editing as the default authoring mode, with the editor canvas kept visually minimal.
- Markdown source mode for direct editing of advanced syntax or fine-grained formatting.
- A PDF export dialog with per-export toggles for date, file name, note text, page numbers, plus an H1/H2 checklist for forced page breaks.
- Live synchronization between the editor surface and the underlying
.md file in VS Code.
- Export to standalone HTML files for document sharing, archival, or downstream publishing workflows.
- Export to PDF through browser-based print rendering, preserving readable text and rendered diagrams in the output document.
- YAML front matter block support using
--- ... --- delimiters.
- Mermaid rendering for diagram blocks written with fenced
mermaid code.
- Image insertion by paste, drag-and-drop, or editor actions, with images embedded directly into Markdown as base64 data URLs.
- Table authoring with optimized header styling for clear reading and editing.
- Insert Path: toolbar button and Explorer context-menu commands to insert file or folder paths at the editor caret. The toolbar inserts absolute paths by default; hold Ctrl for a relative path, and Explorer also provides a separate Insert Relative Path command.
- A Copilot Chat toolbar action that opens Copilot Chat with the current Markdown document prefilled for quick prompting, while also copying the content to the clipboard as a fallback.
Typical Workflow
- Open a Markdown file in Visual Studio Code.
- Run the command Synkdown: Open WYSIWYG Editor.
- Edit content in the default WYSIWYG mode.
- Click Export PDF when you need a PDF, then choose whether to print date, file name, note text, page numbers, and which H1/H2 headings should start on a new page.
- Switch to Markdown mode when exact syntax editing is needed.
- Save the document through the normal VS Code save flow.
PDF Export Notes
- Opens a compact parameter dialog before exporting to PDF.
- Options: include date, file name, note, page numbers, and per-heading forced page breaks (H1/H2).
- The file name defaults to the document base name and is editable.
- The dialog remembers its position and selections between uses.
Supported Content Types
- YAML front matter blocks, headings, paragraphs, block quotes, lists, task lists, and code blocks.
- Tables with visually distinct header cells.
- Inline math with
$...$ and block math with $$...$$.
- Mermaid diagrams using fenced code blocks with the
mermaid language tag.
- Base64-embedded images stored directly inside the Markdown document.
Configuration
synkdown.yaml.defaultBlock controls the YAML block inserted by the toolbar. It supports ${date} for today's date and ${cursor} for the initial cursor position.
Design Principles
- Editing-first interface: keep the writing surface as the primary focus.
- Dual-mode workflow: visual editing for speed, Markdown mode for precision.
- File-native behavior: all edits remain part of the original Markdown file lifecycle.
- Low-friction portability: embedded images avoid extra asset-file management during file transfer.
Known Boundaries
- Large embedded images increase Markdown file size noticeably.
- Highly customized or uncommon Markdown syntax is best adjusted in Markdown source mode.
- Final rendering of very complex Mermaid or math content should still be reviewed in the target publishing environment.
| |