Cmd+C / Cmd+V / Cmd+D keyboard shortcuts now work in the standalone
window. The clipboard pure module (committed in C6a) is inlined
into the bundle alongside the mermaid parser (C9 inlining) so the
standalone window does not depend on a separate bundle rebuild.
- copySelection / pasteSelection definitions added inside the
bundle IIFE, exposed as window.FlowchartClipboard for jsdom
tests.
- Module-level _clipboard variable scoped to the keydown handler
block so copy survives across Cmd+V and Cmd+D presses.
- Cmd+C: serialises the canvas-owned selection (now read via
getSelection(), not the old DOM .selected query) and stashes it.
- Cmd+V: applies the stashed payload to the store via addNode +
connect; nothing to do for the edge-only payload.
- Cmd+D: copy + paste in one keystroke, with a 24px offset.
- Delete/Backspace: reuses getSelection() to delete the selected
node or edge; replaces the fragile DOM-querying path that the
test for the bundle was no longer catching.
The pure module in src/flowchart/flowchart-clipboard.js stays the
source of truth for the algorithm (9 tests in C6a). Bundle inline
keeps the standalone window functional without a rebuild step;
a future build-time inclusion would collapse the duplication.
Amit Haridas
MarkdownConverter
A powerful cross-platform Markdown editor and document converter powered by Pandoc, built with Electron. 100% open-source with no proprietary dependencies.
Features
Markdown Editor
PDF Viewer & Editor
- Built-in PDF viewer - Open and view PDF files directly in the app
- Page navigation - Navigate pages with keyboard or buttons
- Zoom controls - Zoom in/out, fit to width, fit to page
- Rotation - Rotate pages left or right
- PDF Editor tools:
- Merge multiple PDFs
- Split PDFs by page range
- Compress PDFs
- Rotate pages
- Delete pages
- Reorder pages
- Add watermarks
- Password protection
- Remove passwords
- Set permissions
Export Options
- PDF - Export to PDF with customizable page sizes and orientation
- DOCX - Standard and Enhanced (template-based) Word export
- ODT - OpenDocument format
- HTML - Web-ready HTML export
- PowerPoint - PPTX presentation export
- EPUB - E-book format
- LaTeX - Academic document format
- RTF - Rich Text Format
- Export themes - Five visual styles (Modern, Classic, Sepia, Minimal, Elegant) for PDF and Word exports — recolored headings, links, and fonts
Advanced Features
- Custom headers & footers - Add headers/footers to exports with dynamic fields
- Page size configuration - A3, A4, A5, B4, B5, Letter, Legal, Tabloid, or custom sizes
- Visual flow chart editor - Build Mermaid flowcharts visually; drag nodes, connect edges, live preview. Insert at cursor.
- Batch conversion - Convert entire folders of markdown files
- ASCII Art Generator - 17 hand-coded fonts + 400+ FIGlet fonts; text banners, boxes, and templates; insert into editor, copy to clipboard, or save to file (Ctrl+Shift+A)
- Word templates - Use custom Word templates for enhanced exports
- Import documents - Import from 30+ formats (DOCX, PDF, HTML, etc.)
- MarkItDown import - Any file → Markdown via Microsoft MarkItDown. Bundled (MIT + PSF Python runtime) — no installation required for the core formats (PDF, DOCX, PPTX, XLSX, Outlook .msg, EPUB, HTML, images, ZIP, CSV, JSON, XML). For audio transcription and OCR, install
markitdown[all]system-side (multi-GB ML models; not bundled). - Excel export - Markdown tables to native .xlsx workbooks (one sheet per table)
- AI Assistant - Multi-provider AI help (OpenAI/Anthropic/Ollama/LM Studio): chat panel, summarize/improve/translate commands, grammar proofreading
- Inline comments - Anchor-based document comments in
.comments/sidecars with F8 navigation - Wiki-links & Backlinks -
[[Note]]links with click-to-create and a "what links here?" panel (local knowledge base) - Crash recovery - Session restore of open tabs and unsaved buffers after a crash
- Version history - Automatic pre-save snapshots with restore/diff/delete from the History panel
- Vim mode & snippet expansion - Vim keybindings toggle; Tab expands saved snippets
- Quick Note - Global scratchpad (Ctrl+Alt+Q) that appends to
notes/quick-notes.md - Real PDF encryption - Password protection, removal, and permissions actually work
- Offline math & diagrams - KaTeX bundled locally; PlantUML renders locally when the CLI is installed
Installation
Prerequisites
- Node.js (v16 or later) — only for development builds
- Pandoc — bundled inside the app, no install needed
- MarkItDown — bundled inside the app (MIT + embedded PSF Python runtime via PyInstaller), no install needed for PDF / DOCX / PPTX / XLSX / Outlook / EPUB / HTML / images / ZIP / CSV / JSON / XML
- Optional for advanced import only:
pip install "markitdown[all]"adds audio transcription (Whisper) and OCR (EasyOCR/Tesseract) — these are multi-GB model downloads and are not bundled for size reasons
Install Dependencies
npm install
Run the Application
npm start
Build for Distribution
# Windows
npm run build:win
# macOS
npm run build:mac
# Linux
npm run build:linux
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| New File | Ctrl+N |
| Open File | Ctrl+O |
| Open PDF | Ctrl+Shift+O |
| Save | Ctrl+S |
| Save As | Ctrl+Shift+S |
| Export | Ctrl+E |
| Ctrl+P | |
| Find | Ctrl+F |
| Undo | Ctrl+Z |
| Redo | Ctrl+Shift+Z |
| New Tab | Ctrl+T |
| Close Tab | Ctrl+W |
| Toggle Preview | Ctrl+Shift+V |
| Zoom In | Ctrl+Shift++ |
| Zoom Out | Ctrl+Shift+- |
| Command Palette | Ctrl+Shift+P |
| Zen Mode | F11 |
| Writing Analytics | Ctrl+Shift+A |
| Quick Note | Ctrl+Alt+Q |
| Universal Converter | Ctrl+Shift+C |
| Table Generator | Ctrl+Shift+T |
| ASCII Art Generator | Ctrl+Shift+A |
| Next Comment | F8 |
| Add Comment at Cursor | Ctrl+Alt+M |
| Flow Chart: Undo | Ctrl+Z |
| Flow Chart: Redo | Ctrl+Shift+Z |
| Flow Chart: Delete selected | Delete |
Themes
37 built-in editor themes, registered in src/main/ThemeRegistry.bootstrap.js.
Light (14)
| Theme | Id |
|---|---|
| Atom One Light (Default) | atomonelight |
| GitHub Light | github |
| Light | light |
| Solarized Light | solarized |
| Gruvbox Light | gruvbox-light |
| Ayu Light | ayu-light |
| Sepia | sepia |
| Paper | paper |
| Rose Pine Dawn | rosepine-dawn |
| Concrete Light | concrete-light |
| Catppuccin Latte | catppuccin-latte |
| One Light | one-light |
| Winter is Coming (Light) | winter-is-coming-light |
| Spring Light (seasonal) | spring-light |
Dark (22)
| Theme | Id |
|---|---|
| Dark | dark |
| One Dark | onedark |
| Dracula | dracula |
| Nord | nord |
| Monokai | monokai |
| Material | material |
| Gruvbox Dark | gruvbox-dark |
| Tokyo Night | tokyonight |
| Palenight | palenight |
| Ayu Dark | ayu-dark |
| Ayu Mirage | ayu-mirage |
| Oceanic Next | oceanic-next |
| Cobalt2 | cobalt2 |
| Concrete Dark | concrete-dark |
| Concrete Warm | concrete-warm |
| Catppuccin Frappé | catppuccin-frappe |
| Catppuccin Macchiato | catppuccin-macchiato |
| Catppuccin Mocha | catppuccin-mocha |
| Tokyo Night Storm | tokyo-night-storm |
| Synthwave '84 | synthwave-84 |
| Outrun | outrun |
| Winter is Coming (Dark) | winter-is-coming-dark |
High-Contrast (1)
| Theme | Id |
|---|---|
| Solarized Dark (High Contrast) | solarized-dark-hc |
The currently-selected theme persists across restarts via electron-store (key theme, default atomonelight). Adding a new theme is one register() call in the bootstrap + one CSS file under src/styles/themes/.
PDF Viewer
Open PDF files directly in MarkdownConverter:
- File > Open PDF or Ctrl+Shift+O
- Navigate pages with arrow buttons or page input
- Zoom controls: +/- buttons, Fit Width, Fit Page
- Rotate pages left or right
- Close PDF to return to editor
Bundled Dependencies, Legal Notices & Credits
MarkdownConverter ships as a self-contained package. Everything needed for the core workflows is bundled; a few large optional tools are detected from the system when present.
Bundled with the app
| Component | License | Role |
|---|---|---|
| Pandoc 3.9 | GPL-2.0+ (separate process) | 25+ export/import formats |
| FFmpeg (via ffmpeg-static) | GPL-3.0+ build (separate process) | audio/video tools |
| MarkItDown (MIT) + embedded Python runtime (PSF) | MIT / PSF | any-file → Markdown import (PDF/DOCX/PPTX/XLSX/Outlook/EPUB/images/ZIP) |
| sharp + libvips | Apache-2.0 / LGPL-2.1+ (dynamic) | image tools |
| KaTeX, marked, [highlight.js], [DOMPurify], [mermaid], [CodeMirror 6], pdf-lib (@cantoo fork), pdfjs-dist, JSZip, simple-git | MIT / Apache-2.0 / BSD-3 / MPL-2.0 | editor, preview, PDF, Git |
| JetBrains Mono & Fira Code fonts | SIL OFL 1.1 | editor typography |
GPL-licensed tools run as separate processes (never linked into the app) and their complete corresponding sources are offered in SOURCES.md. Full details: THIRD-PARTY-NOTICES.md, also available inside the app under Help → Third-Party Notices & Licenses.
Not bundled (used when installed)
LibreOffice (Office conversion), MiKTeX/TeX Live (LaTeX PDF), ImageMagick
(extra image formats), PlantUML + Java (local diagrams), Calibre (MOBI),
MarkItDown [all] extras (audio transcription / OCR).
Credits
Built on open source: [Electron], [CodeMirror], [marked], [KaTeX], [highlight.js], DOMPurify, mermaid, [pdf-lib], pdf.js, [sharp]/libvips, [Pandoc], [FFmpeg], [MarkItDown] by Microsoft, [simple-git], [JSZip], [JetBrains Mono], [Fira Code]. Thank you to all their authors and maintainers.
Open Source
MarkdownConverter is 100% open-source. All dependencies are permissively licensed:
- Electron - MIT License
- pdf-lib - MIT License
- pdfjs-dist - Apache 2.0 License
- marked - MIT License
- highlight.js - BSD 3-Clause License
- dompurify - Apache 2.0/MIT License
- docx - MIT License
- xlsx - Apache 2.0 License (SheetJS Community Edition)
License
MIT License - see LICENSE file for details.
Author
Amit Haridas (amit.wh@gmail.com)
Version
v4.13.0