Skip to main content

Docdo

CLI tool that converts Markdown files to PDF using Playwright and CSS themes.

Install

uv tool install docdo
playwright install chromium

Usage

docdo -i README.md                       # outputs README.pdf next to it
docdo -i docs/ -o out/                   # converts a whole folder
docdo -i README.md -t dracula            # use a built-in theme
docdo -i README.md -t ./my-style.css     # use a custom CSS file
Flag Description
-i, --input Markdown file or folder (required)
-o, --output Output PDF file or folder (defaults to input location)
-t, --theme Built-in theme name (default, dracula) or path to a .css file

Themes

Built-in themes live in src/docdo/themes/. To add your own, drop a .css file there or just pass any CSS file path with -t.

How it works

  1. Parses Markdown with markdown-it-py (with pygments for syntax highlighting).
  2. Wraps the HTML with the selected CSS theme.
  3. Renders to PDF via Playwright (headless Chromium).

Dev

uv sync
uv run docdo -i README.md

Metadata

Release files for docdo 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for docdo 0.0.5
File Size Uploaded
docdo-0.0.5.tar.gz 16.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for docdo 0.0.5
File Interpreter ABI Platform
docdo-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 27.9 kB

Release files / docdo-0.0.5.tar.gz

Download URL docdo-0.0.5.tar.gz
Size 16.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f82667f170e0671257058bfb69faacf23ef1dcfc239ed7635fa0970a2a65f52b
BLAKE2b-256 checksum
How to use checksums
172566ed107d2042a7e69b701c236c809bab854aaf00bca3fb0ea8a4a72b44c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Release files / docdo-0.0.5-py3-none-any.whl

Download URL docdo-0.0.5-py3-none-any.whl
Size 11.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fae04b081965d0a4b2736e2d8ba354d74af39fe3feb6f5a481e4e13c6a7d57ca
BLAKE2b-256 checksum
How to use checksums
6feae1b8664ed92eeb3ff0ad69b0bc4e743f86f9f3bd3a8344d8fb6871a72c95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page