mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-10-01 17:29:29 +05:30
Bundle (v4.7.0): - MarkItDown frozen to a single ~75MB per-platform binary (PyInstaller via npm run bundle:markitdown; ML extras excluded) — built and verified locally: HTML/XLSX/PDF conversions pass through the bundled binary, and the app resolves bin/linux/markitdown first at runtime - Packaging copies bundled markitdown alongside Pandoc for win/mac/linux; FFmpeg/sharp/KaTeX/fonts were already bundled Legal artifacts: - THIRD-PARTY-NOTICES.md: complete license inventory of everything distributed (binaries, npm runtime deps, fonts, embedded Python packages) - SOURCES.md: GPL §3(b) written source offers for Pandoc 3.9.0.2, ffmpeg-static's GPL build, and the PyInstaller bootloader; LGPL relinking note for libvips - third-party-licenses/: canonical GPL-2.0, LGPL-2.1, MPL-2.0, Apache-2.0, OFL-1.1, PSF-Python texts - Help > Third-Party Notices & Licenses: in-app viewer for both documents - README: 'Bundled Dependencies, Legal Notices & Credits' section Hardening: - download-tools.js now SHA-256 pins every artifact, verifies after download AND against the cache on every run, and hard-fails on mismatch (closes security finding D6) Large tools intentionally not bundled (documented): LibreOffice, MiKTeX/TeX Live, ImageMagick, PlantUML+JRE, Calibre. 637/637 tests green; lint clean; clean boot; bundled binary verified.
224 lines
7.8 KiB
Markdown
224 lines
7.8 KiB
Markdown
# 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
|
|
<img width="1920" height="1032" alt="image" src="https://github.com/user-attachments/assets/5f53ba94-7663-47c3-b12b-b7b8bd2645aa" />
|
|
- **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
|
|
<img width="1920" height="1032" alt="image" src="https://github.com/user-attachments/assets/f10f62be-af3d-496e-81df-37ab4f91abfd" />
|
|
|
|
- **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
|
|
|
|
### 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
|
|
- **Batch conversion** - Convert entire folders of markdown files
|
|
- **ASCII Art Generator** - Create text banners and diagrams
|
|
- **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](https://github.com/microsoft/markitdown): PDF, DOCX, PPTX, XLSX, Outlook .msg, EPUB, images, ZIP (audio/OCR with the `[all]` extras)
|
|
- **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](https://nodejs.org/) (v16 or later)
|
|
- [Pandoc](https://pandoc.org/installing.html) (required for export functionality)
|
|
- Optional: [MarkItDown](https://github.com/microsoft/markitdown) (`pip install "markitdown[all]"`) for any-file → Markdown import
|
|
|
|
### Install Dependencies
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### Run the Application
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
### Build for Distribution
|
|
```bash
|
|
# 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 |
|
|
|
|
## Themes
|
|
|
|
### Light Themes
|
|
- Atom One Light (Default)
|
|
- GitHub Light
|
|
- Light
|
|
- Solarized Light
|
|
- Gruvbox Light
|
|
- Ayu Light
|
|
- Sepia
|
|
- Paper
|
|
- Rose Pine Dawn
|
|
- Concrete Light
|
|
|
|
### Dark Themes
|
|
- Dark
|
|
- One Dark
|
|
- Dracula
|
|
- Nord
|
|
- Monokai
|
|
- Material
|
|
- Gruvbox Dark
|
|
- Tokyo Night
|
|
- Palenight
|
|
- Ayu Dark
|
|
- Ayu Mirage
|
|
- Oceanic Next
|
|
- Cobalt2
|
|
- Concrete Dark
|
|
- Concrete Warm
|
|
|
|
## 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](https://pandoc.org) 3.9 | GPL-2.0+ (separate process) | 25+ export/import formats |
|
|
| [FFmpeg](https://ffmpeg.org) (via ffmpeg-static) | GPL-3.0+ build (separate process) | audio/video tools |
|
|
| [MarkItDown](https://github.com/microsoft/markitdown) (MIT) + embedded Python runtime (PSF) | MIT / PSF | any-file → Markdown import (PDF/DOCX/PPTX/XLSX/Outlook/EPUB/images/ZIP) |
|
|
| [sharp](https://sharp.pixelplumbing.com) + libvips | Apache-2.0 / LGPL-2.1+ (dynamic) | image tools |
|
|
| [KaTeX](https://katex.org), [marked](https://marked.js.org), [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](SOURCES.md). Full details: [THIRD-PARTY-NOTICES.md](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](https://github.com/cure53/DOMPurify),
|
|
[mermaid](https://mermaid.js.org), [pdf-lib], [pdf.js](https://mozilla.github.io/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.7.0
|