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
fix: prevent orphaned headings at page breaks + improve README
- Add CondPageBreak before headings to avoid orphans at page bottom
- Wrap heading + decorators in KeepTogether for atomic rendering
- Set keepWithNext=True on all heading styles
- Add structural and integration tests for orphan prevention
- Bump version to 0.2.0
- Add CHANGELOG.md
- Improve README with badges, features section, and better structure
Thanks to @0xlaveen for identifying the orphaned heading issue in #1.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
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