markpublish
Modern PDF Document Publishing from Markdown
markpublish typesets structured Markdown chapters into print-ready PDFs.
Structure, metadata and design live in a single markpublish.yaml —
everything else is your text.
- One manifest instead of a command line full of options: title, cover, tables of contents, headers and footers, order of chapters.
- Parts and chapters with divider pages: with subtitle, summary and a local table of contents of their own — configurable per level.
- Flexible pattern-based autonumbering: a single pattern (
"1|.1|+","A|.1|+", or"I|1|.1|+") defines how parts, chapters, and subheadings count. Freely mix numbering styles, skip levels (_), prefix labels ("Chapter", "Appendix"), and keep headings fully synchronized with all tables of contents. - Themes in Typst:
markpublish export-template default ./templatesputs the default theme into your project and the next build picks up your version. The font ships with the theme, so output does not depend on the machine. - Markdown that does more: GitHub-style alerts, footnotes, task lists, definition lists, math, syntax highlighting.
- Bilingual both ways: the document language drives labels and
hyphenation, the interface language follows your system (
--ui-lang). - Self-documenting:
markpublish cheatsheetandmarkpublish manualrender the reference and the manual from the installed package — always matching the version you are running.
Manual
| Deutsch | English |
|---|---|
| Benutzerhandbuch (PDF) | User Manual (PDF) |
| Kurzreferenz (PDF) | Quick Reference (PDF) |
All four are typeset with markpublish itself (also available online at www.markpublish.com).
Installation
pip install markpublish
# create a project
markpublish init my-project
# build the PDF
markpublish build my-project/markpublish.yaml
(requires Python 3.10 or newer)
License
© 2026 Frank Winter
Licensed under the MIT License.
Release files for markpublish 2.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markpublish-2.1.6.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markpublish-2.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.9 MB
Release files / markpublish-2.1.6.tar.gz
| Download URL | markpublish-2.1.6.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55fc7abb96f6ee71918beb2a292e6a311bc8e83ec4fb9b08da02a897ad393191
|
|
BLAKE2b-256 checksum How to use checksums |
a0937c69bce1db9e69d3577996c8d2e744e72f4954d5e8012f344bb8e2d53064
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 21, 2026.
Transparency logRelease files / markpublish-2.1.6-py3-none-any.whl
| Download URL | markpublish-2.1.6-py3-none-any.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12ab8428fbe39db55c66c2b0ac7ac7f70d2b6ae30b56fd679bbd31e86a6249c0
|
|
BLAKE2b-256 checksum How to use checksums |
49f7c1cbcf11300e80e0b12450205a83e613da8326ddab63d72cd8c0ca454e68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 21, 2026.
Transparency log