@zongchenghao/mdkit
v0.1.0
Published
Convert Markdown to HTML / PDF / PNG, MPE-style pipeline (markdown-it + KaTeX + Mermaid)
Readme
mdkit
A command-line tool that converts Markdown to HTML / PDF / PNG. The rendering pipeline uses the same underlying components as Markdown Preview Enhanced: markdown-it + KaTeX + Mermaid + highlight.js.
Features
- Self-contained HTML — KaTeX CSS/fonts, Mermaid runtime, and local images are all inlined; a single file works fully offline
- Math (KaTeX), Mermaid diagrams, syntax highlighting, tables, footnotes, task lists, emoji
- PDF / PNG export via headless Chrome (puppeteer) — what you see is what you get
- Standalone binaries — no Node.js required on the target machine
Install
npm (recommended)
Requires Node.js >= 18. Dependencies are installed automatically (like mmdc).
npm install -g @zongchenghao/mdkitFrom source
git clone https://github.com/playmaker/mdkit.git
cd mdkit
make deps && make build
make install # installs to /usr/local/bin/mdkitStandalone binary (optional)
No Node.js required on the target machine — builds a ~250 MB single binary:
make binary # current platform -> dist/mdkit
make binaries # all platforms -> release/Usage
mdkit README.md # -> README.html
mdkit doc.md -f html,pdf,png # all three formats at once
mdkit doc.md -f pdf -o out/ # output into a directory
mdkit doc.md -f png --scale 3 # 3x resolution PNG
mdkit doc.md -f pdf --page-format LetterOptions
| Option | Description | Default |
| --- | --- | --- |
| -f, --format <formats> | Output formats, comma separated: html,pdf,png | html |
| -o, --output <path> | Output file or directory | same dir as source |
| -t, --title <title> | Document title | first H1 heading |
| --page-format <size> | PDF paper size | A4 |
| --scale <n> | PNG device scale factor | 2 |
Notes
- PDF/PNG export needs a Chrome/Chromium binary: a puppeteer-managed Chrome (
npx puppeteer browsers install chrome), or a system-installed Chrome is auto-detected. - Cross-compiling binaries for other platforms:
make binariescovers macOS arm64/x64 and Linux x64; add targets in the Makefile for more.
License
MIT
