Skip to content

Repository files navigation

markpdf

markpdf

Beautiful PDFs from markdown. One command, zero config.

CI PyPI License Python


markpdf report.md

Install

Agent skill (Claude Code, Cursor, Codex, Gemini CLI):

npx skills add araa47/markpdf

CLI:

uv tool install git+https://github.com/araa47/markpdf

Or with pip:

pip install markpdf

Usage

markpdf report.md                        # creates report.pdf
markpdf report.md --dark                  # dark mode
markpdf report.md -o final.pdf            # custom output path
markpdf report.md -k                      # keep sections on same page
markpdf report.md -v                      # verbose output

Output

Light Dark

Source: tests/fixtures/showcase.md | Full PDFs: examples/

Features

  • Full markdown -- headers, lists, tables, code blocks, blockquotes, images, task lists
  • Extended syntax -- ==highlight==, ^super^, ~sub~, ~~strike~~
  • Light & dark themes -- shadcn/ui zinc palette
  • Smart page breaks -- headings stay with their content, no orphans
  • Remote images fetched concurrently
  • Async I/O with optional uvloop
  • Single command, agent-friendly -- no browser, no LaTeX, no config

Why markpdf?

Most messaging apps (Slack, Discord, Teams, WhatsApp, email) don't render markdown. markpdf turns it into a polished PDF -- no browser, no LaTeX, no config.

Contributing

See CONTRIBUTING.md for development setup.

uv sync --all-extras --dev
uv run pytest

Changelog

See CHANGELOG.md for release history.

License

MIT

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages