Scope & Components
Scope
Components
| Component | Purpose |
|---|---|
|
Primary AsciiDoc builder — HTML, PDF, DOCX, EPUB, Markdown with watch, batch, encrypt, validate, smart build. Auto-detects Antora modules and resolves |
|
Unified router — detects input type (.adoc, .md, .tex, .mmd) and delegates to appropriate backend |
|
Markdown publisher — styled HTML via Pandoc with theme system, AsciiDoc conversion |
|
LaTeX builder — multi-pass pdflatex with Mermaid diagram pre-rendering |
|
Light variant CSS: code-blocks, admonitions, carved grid tables, inline-code |
|
Midnight variant CSS (GitHub Dark palette) |
|
Catppuccin Mocha variant CSS (warm dark palette) |
|
Royal Blue variant CSS (deep navy + gold accents) |
|
Shared JS: copy-button with language label detection |
|
Assembles selected CSS variant + JS into single docinfo-footer.html. Accepts |
|
Markdown-to-AsciiDoc converter with YAML frontmatter support |
|
Mermaid diagram pre-renderer for PDF/EPUB (extracts blocks, renders via mmdc) |
|
asciidoctor-pdf themes: base, operations, learning, reference, creative, don-quijote, catppuccin |
|
HTML themes: dark-sidebar (full Pandoc theme), asciidoc (lightweight) |
|
EPUB stylesheets with category color overrides |
|
LaTeX templates (base, CHLA branding, personal), Markdown templates, AsciiDoc partials |
Consumers
-
Principia PKMS (standalone builds of worklogs, captures, runbooks)
-
CHLA private playbook (encrypted ISE deployment docs)
-
Any domus spoke repo needing standalone export (Antora pages auto-resolve)
-
Future: any project needing professional document output
Design Decisions
-
docinfo split: CSS and JS live in separate files for independent iteration; compose.sh assembles them because Asciidoctor requires a single docinfo file
-
Variant system: Each color variant is a directory (
css-<name>/) with the same file set. Adding a new variant = create a directory + register in compose.sh -
Antora auto-detection: Walks up from the input file to find
partials/+pages/siblings, then resolvespartial$to absolute paths in a temp file. Loads attributes fromantora.ymlinto asciidoctor-aflags. No flag needed -
$REPO_ROOTresolution: All scripts resolve paths relative to their own location ($SCRIPT_DIR/..), never walking up to find a parent project -
PDF theme as parameter:
--theme operationsinstead of hardcoded, defaults tobase -
Carved grid tables: All variants use
border-separatewith visible gridlines, gradient headers, column dividers, and hover glow for a professional spreadsheet-like appearance