@kobekeye/mdf
v1.2.0
Published
Convert Markdown to beautiful PDFs — free, open-source, and zero-config.
Maintainers
Readme
mdf
📢 v1.2.0 — VSCode extension with preview, new themes.
Convert Markdown to beautiful PDFs — free, open-source, and zero-config. Welcome to mdf! Please note that this project is currently in the MVP (Minimum Viable Product) stage. Any feedback, suggestions, or contributions are highly appreciated!
Features
- Syntax highlighting — fenced code blocks with language detection (via highlight.js)
- Math formulas — inline and block LaTeX via KaTeX (
$...$and$$...$$) - Table of contents — insert
[TOC]anywhere in your document - Callout blocks —
:::info,:::warning,:::danger,:::success - Syntactical sugar —
:::center,:::right,:::left - Task lists —
- [ ]and- [x] - Tables, images, blockquotes
- Manual page breaks — insert
==page==on its own line - CJK support — uses Inter + Noto Sans TC via Google Fonts for the default theme (requires download on first run)
Installation
Linux / macOS
It is highly recommended to use nvm/fnm to manage permissions. Using sudo with global npm installs is not recommended. Below shows an example for the nvm one.
1. Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash2. Install nodejs
nvm install --lts3. Install mdf
npm install -g @kobekeye/mdfWindows
If you haven't install nodejs, click here to install. Or if you want to use nvm-windows is also available. After installing nodejs/nvm, type
npm install -g @kobekeye/mdfUsage
mdf <input.md> [output.pdf] [-w|--watch] [--theme <name>]
Examples:
mdf input.md # outputs input.pdf
mdf input.md output.pdf # custom output name
mdf input.md --theme asterisk # outputs input.pdf with theme "asterisk"To watch the output pdf file, use
mdf input.md -w # outputs input.pdf and watches for changes
mdf input.md output.pdf -w # custom output name and watches for changes
mdf input.md -w --theme asterisk # watches input.pdf with theme "asterisk"Or, if you want to try without installation,
npx @kobekeye/mdf input.md # outputs input.pdf
npx @kobekeye/mdf input.md output.pdf # custom output name
npx @kobekeye/mdf input.md -w # outputs input.pdf and watches for changes
npx @kobekeye/mdf input.md output.pdf -w # custom output name and watches for changesVSCode Extension
Install mdf from the VSCode marketplace for live preview and PDF export directly in the editor.
- Live Markdown preview in side panel
- Syntax highlighting for mdf-specific syntax (
:::callouts,==page==,[TOC]) - LaTeX math snippets
Update
npm update -g @kobekeye/mdfIf you only use npx to run mdf, make sure to run the latest version by using:
npx @kobekeye/mdf@latestOtherwise, npx might use a cached version, causing you to encounter bugs that have already been fixed.
Syntax Guide
Table of Contents
[TOC]Math
Inline: $E = mc^2$
Block:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$Callout Blocks
:::info Title
This is an info callout.
:::
:::warning
Watch out!
:::
:::danger Critical
This is dangerous.
:::
:::success
Operation completed.
:::Manual Page Break!
==page==License
MIT
