prodockit
A toolkit for writing and publishing professional or academic documents with Zensical. Write the content once in Markdown, publish it as a website, and build a single downloadable or submittable PDF from the same pages and navigation.
prodockit combines:
- nine Python-Markdown authoring extensions for headings, references, citations, glossaries, tables, directories, procedures, bibliographies, and indexes;
- a Pandoc and WeasyPrint PDF pipeline;
- Zensical macros and built-output tests; and
- commands for machine setup, template updates, repository metadata, and reproducible build inputs.
PyMdown Extensions is a
direct part of the authoring foundation. prodockit.steps and
prodockit.tree are built with the PyMdown Blocks API, so they use its
slash-fenced block model rather than a separate, look-alike parser.
Choose where to start
| You want to | Start here |
|---|---|
| Create and publish a document | prodockit User Guide |
| Begin with a maintained report project | prodockit-template |
| Use Adoption to add prodockit to an existing Zensical or MkDocs document | prodockit adopt |
| Choose and install each dependency directly | Manual installation |
| Build a small local site from scratch | Build your first site |
| Look up Markdown syntax and configuration | Authoring reference |
| Build a PDF or publish with CI | Publish a document |
| Evaluate versions, platforms, and maturity | Support and compatibility |
| Change prodockit itself | Contributing |
Project status
prodockit is currently Alpha: its documented features are functional and tested, but pre-1.0 releases can still make a documented breaking change when needed to regularise the public configuration.
Bootstrap has completed manual end-to-end testing on Ubuntu, Windows, and macOS against both the University of Surrey GitLab and GitHub.com. That testing covered creating a new document repository and installing an existing online repository locally. The full test suite runs on Ubuntu for every push and pull request and is also run locally on macOS. Windows has manual workflow coverage, but not a hosted full-suite regression job.
See Support and compatibility for the precise test depth, supported versions, and known constraints.
Installation
prodockit requires Python 3.10 or later and is tested on Python 3.10–3.14:
python -m pip install prodockit
The base installation includes Zensical, Python-Markdown, PyMdown Extensions, and the other Python libraries used by the Markdown extensions. Optional extras add features with larger testing or indexing dependencies:
python -m pip install "prodockit[index]" # PDF back-of-book index
python -m pip install "prodockit[testing]" # checks for a built site and PDF
PDF and bibliography features need tools that the base installation does not supply:
- install WeasyPrint with
python -m pip install weasyprintand install its native Pango libraries; - install Pandoc for PDF generation and BibTeX/BibLaTeX bibliographies; and
- install the optional Node tools and Chrome or Chromium only when the PDF contains Mermaid diagrams or TeX maths.
Follow the complete, platform-specific installation guide before building a PDF. Check the installed release with:
prodockit --version
Authoring extensions
Enable only the extensions a project uses in zensical.toml. Each extension
has a beginner-first guide with copyable Markdown and a rendered result.
| Extension | Use it for |
|---|---|
prodockit.headings |
Numbered headings and appendices |
prodockit.refs |
Cross-references to headings, figures, and tables |
prodockit.citations |
A small reference list written directly in Markdown |
prodockit.glossary |
Acronyms and glossary terms |
prodockit.tables |
Widths, merged cells, dense tables, and richer headers |
prodockit.tree |
Readable directory trees |
prodockit.steps |
Procedures presented as numbered steps |
prodockit.bibliography |
BibTeX/BibLaTeX citations formatted with CSL |
prodockit.index |
A PDF-only back-of-book index |
For example:
[project.markdown_extensions."prodockit.headings"]
numbering = "continuous"
[project.markdown_extensions."prodockit.refs"]
[project.markdown_extensions."prodockit.steps"]
The authoring reference explains the three consistent stages for each feature: enable the extension, write the Markdown, then configure optional behaviour.
Publishing and project commands
Run prodockit --help for the options installed with the current release.
The pdk executable is an exact shorter alias for prodockit; boot aliases
bootstrap, and source aliases source-bundle.
| Command | Purpose |
|---|---|
prodockit diag |
Diagnose the active environment, project, tools, and repository without changing them |
prodockit config |
Show resolved Prodockit settings and check source-project integrity |
prodockit adopt |
Add selected prodockit components to an existing Zensical or MkDocs document |
prodockit bootstrap |
Check or prepare a machine and a project based on prodockit-template |
prodockit init-tools |
Install the local Node tooling for Mermaid and maths rendering |
prodockit init-mathjax |
Copy the installed MathJax bundle into website assets |
prodockit update-dates |
Add per-page revision dates to a completed website without changing Markdown source |
prodockit pdf |
Build one PDF from the pages in the Zensical navigation |
prodockit source-bundle |
Bundle the Markdown source and configuration into a separate PDF |
prodockit sync-repo |
Match repository links, branding, and managed README badges to origin |
prodockit pins |
Check and update build-input versions across project files |
prodockit template-sync |
Review and apply later updates from prodockit-template |
The command-line reference documents safe first runs, write behaviour, and aliases. When publishing both outputs locally, build in this order:
zensical build --clean --strict
prodockit pdf
prodockit update-dates
The PDF consumes the completed Zensical site and does not invoke the site
builder. prodockit update-dates post-processes the generated HTML and does
not edit the files you author or call the site builder. It is also a standalone
capability: an existing Zensical project can use it after installing
the package, without running prodockit adopt or enabling any other Prodockit component. The maintained
template includes annotated GitHub Actions and GitLab CI workflows that
perform the same build, test the generated files, and deploy Pages.
Package integrations
| Integration | Purpose |
|---|---|
prodockit.zensical_macros |
Word counts, repository data, document-wide numbering, and layout helpers for Zensical templates |
prodockit.testing |
Reusable pytest fixtures and checks for a generated site and PDF |
These are not Markdown extensions. Macros are enabled through Zensical's
macros configuration; testing support is installed with
python -m pip install "prodockit[testing]".
Development
Changes to the package, tests, automation, or technical documentation should follow CONTRIBUTING.md. It gives the editable installation, external PDF prerequisites, macOS library-path setup, source gates, built-site tests, and pull-request expectations.
Contributing
Contributions are welcome. Search or open an issue before starting a change beyond a small correction, and submit changes through a focused branch and pull request. See Contributing for the complete workflow.
Licence
MIT - see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prodockit-0.54.0.tar.gz.
File metadata
- Download URL: prodockit-0.54.0.tar.gz
- Upload date:
- Size: 7.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42bdb507763f472f020a252bd02c19728172a69b91dc898a1f8f285880fc026f
|
|
| MD5 |
b2f9b04ae79f088c7d22470b94429455
|
|
| BLAKE2b-256 |
34d1f5e3f1cbb58cb3ad952ffdf13faaeec62e1e5475e317470ecc42af5c5b73
|
Provenance
The following attestation bundles were made for prodockit-0.54.0.tar.gz:
Publisher:
publish.yml on buckwem/prodockit-extensions
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prodockit-0.54.0.tar.gz -
Subject digest:
42bdb507763f472f020a252bd02c19728172a69b91dc898a1f8f285880fc026f - Sigstore transparency entry: 2677108623
- Sigstore integration time:
-
Permalink:
buckwem/prodockit-extensions@e5ee9fc5c3e836324c05d5d8fd1b178f3989de5d -
Branch / Tag:
refs/tags/prodockit-v0.54.0 - Owner: https://github.com/buckwem
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e5ee9fc5c3e836324c05d5d8fd1b178f3989de5d -
Trigger Event:
release
-
Statement type:
File details
Details for the file prodockit-0.54.0-py3-none-any.whl.
File metadata
- Download URL: prodockit-0.54.0-py3-none-any.whl
- Upload date:
- Size: 437.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fb62b5539107fe34bdcf86aaed3071d46a21e8a851f331274df92bc197bbe08
|
|
| MD5 |
d3342b4bde35c0e493a2403d58e9ce56
|
|
| BLAKE2b-256 |
5d3aa7a2a5a85d56aa03404764e89982369d63ec77bb528a1d43c80d2de8bf1a
|
Provenance
The following attestation bundles were made for prodockit-0.54.0-py3-none-any.whl:
Publisher:
publish.yml on buckwem/prodockit-extensions
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prodockit-0.54.0-py3-none-any.whl -
Subject digest:
9fb62b5539107fe34bdcf86aaed3071d46a21e8a851f331274df92bc197bbe08 - Sigstore transparency entry: 2677108680
- Sigstore integration time:
-
Permalink:
buckwem/prodockit-extensions@e5ee9fc5c3e836324c05d5d8fd1b178f3989de5d -
Branch / Tag:
refs/tags/prodockit-v0.54.0 - Owner: https://github.com/buckwem
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e5ee9fc5c3e836324c05d5d8fd1b178f3989de5d -
Trigger Event:
release
-
Statement type: