Overview#
DocumANTation turns Markdown into books, presentations and CVs with Pandoc and LuaLaTeX, through one containerized build flow for every document type.
Key Features#
Feature |
Detail |
|---|---|
Six targets, one toolchain |
Book (scrbook), Beamer slides, PowerPoint deck, bilingual CV (and cover letters in its class), showcase deck, starter doc — one container, one command each |
Slides and deck from one source |
|
Brand-consistent code blocks |
|
Containerized builds |
One Dockerfile, pinned Pandoc (SHA256-verified) and uv, zero host dependencies beyond a container runtime |
Strict build gates |
|
Generated style pipeline |
|
Identity is a token too |
Author, URL, GitHub handle and institute are generated into LaTeX, Pandoc metadata and Sphinx — never retyped |
Reusable Sphinx theme |
|
The book, the CV and the starter document have sources of their own; they share the brand and the toolchain, not the prose.
Why not just Pandoc?#
Pandoc + template |
Eisvogel |
Typst |
DocumANTation |
|
|---|---|---|---|---|
Six targets, one brand + toolchain |
Manual |
No |
No |
Book + Beamer + PPTX + CV + showcase + starter |
Author/URL/handle as generated tokens |
No |
No |
No |
|
Brand-consistent code highlighting |
Manual |
No |
Partial |
|
Containerized reproducible build |
Manual |
No |
No |
One Dockerfile, pinned Pandoc + uv |
Strict build-log warning gates |
No |
No |
No |
|
Bilingual CV from one source |
No |
No |
No |
|
Sphinx theme with same brand |
No |
No |
No |
|
Repository Structure#
Path |
Purpose |
|---|---|
|
Markdown chapters, per-document LaTeX headers, and generated output in |
|
Sphinx documentation site for this repository |
|
Shared Python build logic, Pandoc presets, LaTeX templates, and shell scripts |
|
Top-level wrappers for containerized builds |
|
Reusable Sphinx theme package ( |
|
Shared Sphinx templates consumed by downstream repos as a submodule (its doc-generation scripts moved to ANTfrastructure on 2026-07-15) |
Important Entry Points#
Entry point |
Does |
|---|---|
|
The host-side wrapper for |
|
The CLI for the Pandoc-based document types |
|
Builds and runs every Pandoc command |
|
The full LuaLaTeX, bibliography, glossary and nomenclature pipeline for |
|
The strict warning checks over LaTeX and Pandoc logs |
|
The single source of the visual brand (colours, fonts, code palette) and the identity (author, e-mail, URL, GitHub handle, institute); |
Document Types#
book#
Pandoc renders the Markdown chapters into LaTeX; the full TeX pipeline compiles it, bibliography, glossary and nomenclature included.
beamer#
Pandoc builds the presentation PDF through the custom Beamer template and theme.
pptx#
The same presentation markdown as a PowerPoint deck. Colours and fonts come from a
--reference-doc generated from style/brand.json at build time, and verify_brand.py fails a
deck that leaves the brand.
demo#
The slide primitives showcase in data/presentation/demo/, built as its own deck through the
same Beamer template. It needs its own target because get_sorted_markdown_files() lists a single
level: Markdown in a subdirectory of an input directory never reaches Pandoc.
example#
The minimal starter document in data/example/chapters/: one Pandoc call straight to PDF, with
no bibliography, glossary or nomenclature, so a first build cannot fail inside the TeX pipeline.
Replace its Markdown to begin a project of your own.
cv#
LuaLaTeX builds the curriculum vitae directly from data/cv/, with the myCV_METADATA class from
md2pdfLib/cv/template/latex/. CV_LANG selects English (default) or German from the same
sources; CV_PROFILE selects which sections and summary a tailored application CV shows
(data/cv/profiles/).
letter#
A cover letter: the cv document with a letter from data/cv/letters/ as its body, typeset with
the CV profile of the same name, so it shares the CV’s class, header and footer.
Where to Continue#
Setup and first builds: Getting Started
Full compilation stages: Build Pipeline
Dependencies and project metadata: Project Information