mduck
v2.0.5
Published
A CLI tool to convert Markdown files into HTML and PDF documents using Tailwind CSS v4 for styling.
Maintainers
Readme
CLI Markdown to PDF and HTML - mduck
Convert Markdown files to styled HTML and PDF.
Open source notice
This project is part of the Open Collective project Simply Hexagonal and is open to updates by its users, we ensure that PRs are relevant to the community. In other words, if you find a bug or want a new feature, please help us by becoming one of the contributors ✌️ ! See the contributing section.
Like this module? ❤
Please consider:
- Buying me a coffee ☕
- Supporting me on Patreon 🏆
- Starring this repo on Github 🌟
AI and Compliance Notice
The ⛩️ OpenKai quality framework for AI-assisted production was used in the creation of this project, making it ISO 42001 compliant by ensuring human oversight and governance.
30% Human · 70% AI · 100% epic
Run Without Installing
bunx
bunx mduck convert ./notes.mdbunx mduck convert ./notes.md ./dist/bunx mduck convert ./notes.md ./dist/notes.html --template ./my-template.htmlnpx
npx mduck convert ./notes.mdnpx mduck convert ./notes.md ./dist/npx mduck convert ./notes.md ./dist/notes.html --template ./my-template.htmlInstall Globally
With Bun
bun add -g mduckWith npm
npm install -g mduckThen run:
mduck --helpCommands
convert
mduck convert <input-file> [output-file] [--template <template-path>]<input-file>is required.[output-file]is optional.- If output is omitted, output HTML uses input path with
.htmlextension. - If output is an existing directory, output file uses input basename +
.html. - PDF is always generated next to the resolved HTML output, with
.pdfextension. --template(or-t) accepts absolute or relative path to an HTML template file.
Examples:
mduck convert ./docs/readme.mdmduck convert ./docs/readme.md ./output/mduck convert ./docs/readme.md ./output/custom.htmlmduck convert ./docs/readme.md ./output/ --template ./custom.template.htmleject-template
Write the built-in default template to disk so you can customize it.
mduck eject-template [output-template-html-path]- No path: writes
./mduck.template.html - File path: writes exactly there
- Directory path: writes
mduck.template.htmlin that directory
Examples:
mduck eject-templatemduck eject-template ./templates/mduck eject-template ./templates/my-template.htmlTroubleshooting
Puppeteer error: browser not found
If you see an error saying Chromium/Chrome cannot be found, install Puppeteer's browser binary:
npx puppeteer browsers install chromeIf you use Bun:
bunx puppeteer browsers install chromeContributing
Yes, thank you! This plugin is community-driven, most of its features are from different authors.
Please update the docs and tests and add your name to the package.json file.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
License
Copyright (c) 2026 mduck Contributors. Licensed under the Apache License 2.0.
