You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable changes to this project will be documented in this file.
4
+
5
+
## [0.2.0] - 2026-03-23
6
+
7
+
### Fixed
8
+
9
+
- Prevent orphaned headings at page breaks — headings no longer render alone at the bottom of a page with their content flowing to the next page. Uses `CondPageBreak`, `KeepTogether`, and `keepWithNext` for robust prevention. Thanks to [@0xlaveen](https://github.com/0xlaveen) for identifying this issue and proposing the fix in [#1](https://github.com/araa47/markpdf/pull/1).
10
+
11
+
### Added
12
+
13
+
- Tests for heading orphan prevention (structural and integration).
14
+
15
+
## [0.1.0] - 2026-03-22
16
+
17
+
### Added
18
+
19
+
- Initial release: markdown to PDF with light/dark themes, code blocks, tables, lists, images, blockquotes, task lists, extended formatting, and async remote image fetching.
-**Light & dark themes** -- shadcn/ui zinc palette
78
+
-**Smart page breaks** -- headings stay with their content, no orphans
79
+
-**Remote images** fetched concurrently
80
+
-**Async I/O** with optional uvloop
81
+
-**Single command**, agent-friendly -- no browser, no LaTeX, no config
82
+
51
83
## Why markpdf?
52
84
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.
85
+
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.
86
+
87
+
## Contributing
88
+
89
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup.
90
+
91
+
```bash
92
+
uv sync --all-extras --dev
93
+
uv run pytest
94
+
```
95
+
96
+
## Changelog
97
+
98
+
See [CHANGELOG.md](CHANGELOG.md) for release history.
0 commit comments