Amit Haridas 0bb1091c47 feat(flowchart): edge geometry at shape boundary + connect preview (C2+C3)
Three UX/DI wins in one canvas pass:

1. Edge endpoints now land on the source/target shape's BOUNDARY
   rather than the centres. Lines no longer cut through nodes. New
   pure helpers boundaryPoint() + edgeEndpoints() do the geometry;
   nodeCenter() is still used internally for direction vectors.

2. Connect-mode preview line. Alt+drag now draws a dashed line from
   the source node's boundary to the live pointer position so the
   user can see where the edge will land before releasing. The original
   code marked this 'visual feedback deferred to v2'.

3. Selection state is now owned by the canvas (selectedNodeId /
   selectedEdgeId variables), not read from .selected DOM classes.
   The controller can ask via api.getSelection(). Fixes the fragile
   pattern in flowchart-controller.js where Delete/Backspace read
   querySelector('.flowchart-node.selected') — that read is now
   redundant and the controller can be cleaned up to use getSelection()
   directly.

5 new tests cover: edge starts past source centre, edge ends before
target centre, vertical edges connect top/bottom, label background
auto-sizes for long labels, canvas getSelection() reflects clicks.

Amit Haridas
2026-09-30 21:23:39 +05:30
2025-09-21 21:47:12 +05:30

Markdown Converter

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

image - **Multi-tab editing** - Work on multiple files simultaneously - **Live preview** - Real-time markdown rendering with syntax highlighting - **Dynamic splitter** - Drag to resize editor and preview panes - **25+ themes** - Light and dark themes including Atom One Light, Dracula, Nord, Sepia, and more - **Find & Replace** - Search and replace with regex support - **Line numbers** - Toggle line numbers in the editor - **Auto-save** - Automatic saving every 30 seconds - **Math support** - KaTeX integration for mathematical expressions

PDF Viewer & Editor

image
  • 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
Print 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

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

S
Description
No description provided
Readme MIT
16 MiB
Languages
JavaScript 84.4%
CSS 8.1%
HTML 6.8%
NSIS 0.3%
PowerShell 0.2%
Other 0.1%