Skip to content

Commit 8398b4c

Browse files
committed
Improve README with visual examples and add CONTRIBUTING.md
Add light/dark PDF screenshots so people can see the output quality before installing. Reorganize README to lead with agent skill install. Add a short CONTRIBUTING.md with dev setup and PR checklist. Made-with: Cursor
1 parent bcb44ec commit 8398b4c

8 files changed

Lines changed: 53 additions & 19 deletions

CONTRIBUTING.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Contributing
2+
3+
```bash
4+
uv sync --all-extras --dev
5+
```
6+
7+
Before submitting a PR, make sure tests and pre-commit hooks pass:
8+
9+
```bash
10+
uv run pytest
11+
pre-commit run --all-files
12+
```
13+
14+
That's it. Keep changes focused and include tests for new features.

README.md

Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
# markpdf
22

3-
Agent-friendly markdown to PDF. Beautiful documents from the terminal.
3+
Beautiful PDFs from markdown. One command, zero config.
44

5-
## Install as Agent Skill
5+
```bash
6+
markpdf report.md
7+
```
8+
9+
## Install
10+
11+
Agent skill (Claude Code, Cursor, Codex, Gemini CLI):
612

713
```bash
814
npx skills add araa47/markpdf
915
```
1016

11-
Or install the CLI directly:
17+
CLI:
1218

1319
```bash
1420
uv tool install git+https://github.com/araa47/markpdf
@@ -20,21 +26,35 @@ uv tool install git+https://github.com/araa47/markpdf
2026
markpdf report.md # creates report.pdf
2127
markpdf report.md --dark # dark mode
2228
markpdf report.md -o final.pdf # custom output path
23-
markpdf report.md --keep-together # keep sections on same page
24-
markpdf --help # full docs
29+
markpdf report.md -k # keep sections on same page
2530
```
2631

27-
## Why
28-
29-
Most messaging apps (Slack, Discord, Teams, WhatsApp, email) don't render markdown. When an AI agent needs to send a human a formatted document, it can convert markdown to a polished PDF and attach it instead.
30-
31-
## Features
32-
33-
- **Beautiful output** — shadcn/ui zinc palette, clean typography
34-
- **Dark mode**`--dark` for dark-themed PDFs
35-
- **Keep-together**`-k` tries to keep each section on one page
36-
- **Images** — local + remote (fetched concurrently)
37-
- **Full markdown** — headers, bold, italic, code blocks, tables, lists, blockquotes, links, images, task lists, horizontal rules
38-
- **Extended syntax**`==highlight==`, `^superscript^`, `~subscript~`, `~~strikethrough~~`
39-
- **Fast** — async I/O with optional uvloop
40-
- **Rich CLI** — typer-powered `--help`
32+
## Output
33+
34+
<table>
35+
<tr>
36+
<td><strong>Light</strong></td>
37+
<td><strong>Dark</strong></td>
38+
</tr>
39+
<tr>
40+
<td><img src="examples/showcase-light-p1.png" width="400" /></td>
41+
<td><img src="examples/showcase-dark-p1.png" width="400" /></td>
42+
</tr>
43+
<tr>
44+
<td><img src="examples/showcase-light-p4.png" width="400" /></td>
45+
<td><img src="examples/showcase-dark-p4.png" width="400" /></td>
46+
</tr>
47+
</table>
48+
49+
> Source: [`tests/fixtures/showcase.md`](tests/fixtures/showcase.md) | Full PDFs: [`examples/`](examples/)
50+
51+
## Why markpdf?
52+
53+
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.
54+
55+
- Full markdown — headers, lists, tables, code blocks, blockquotes, images, task lists
56+
- Extended syntax — `==highlight==`, `^super^`, `~sub~`, `~~strike~~`
57+
- Light & dark themes — shadcn/ui zinc palette
58+
- Remote images fetched concurrently
59+
- Async I/O with optional uvloop
60+
- Single binary-style command, agent-friendly

examples/showcase-dark-p1.png

153 KB
Loading

examples/showcase-dark-p4.png

106 KB
Loading

examples/showcase-dark.pdf

51.3 KB
Binary file not shown.

examples/showcase-light-p1.png

155 KB
Loading

examples/showcase-light-p4.png

111 KB
Loading

examples/showcase-light.pdf

51.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)