Skip to main content

markpublish

Release License: MIT Python 3.10+

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 ./templates puts 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.
  • Figures and tables with captions: numbered captions, references in the text ([](#id) becomes "Figure 1"), lists of figures and tables where you place them, and image size and frame right at the image.
  • Placeholders in the text: {{version}}, {{author}} or your own {{custom.…}} values from markpublish.yaml, maintained in one place.
  • Bilingual both ways: the document language drives labels and hyphenation, the interface language follows your system (--ui-lang).
  • Self-documenting: markpublish cheatsheet and markpublish manual render 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.

Metadata

Release files for markpublish 2.3.0

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

Source distribution (sdist)

Source distribution for markpublish 2.3.0
File Size Uploaded
markpublish-2.3.0.tar.gz 2.0 MB Details

Built distribution (wheel)

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

Total release size: 3.9 MB

Release files / markpublish-2.3.0.tar.gz

Download URL markpublish-2.3.0.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
1b69d09b68404e49cfde9d734f338b217cf838029aff63009d3b5279b188fcd5
BLAKE2b-256 checksum
How to use checksums
19ab83e2d027e9eae0605b8efe1fa65ccb3697f17d95e383d400a9aa5956a7e6
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 Oct 2, 2026.

Transparency log

Release files / markpublish-2.3.0-py3-none-any.whl

Download URL markpublish-2.3.0-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8a4a505d1d1844158a0d78b87c743e2d70242977afeabb96feba6e1fe48d4c3b
BLAKE2b-256 checksum
How to use checksums
9c95bf0409edbe3fd6e83fec8fc93617996098724b744991f78358bb6c9dc3b5
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 Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

2.4.1

2 release files

2.4.0

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

This release

2.3.0 This release

2 release files

2.2.0

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.0

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