master-zapier-plan-draft/scripts/build-readme-latex.py
George Lambert e401635fd6
Some checks are pending
offline / test (push) Waiting to run
Document every repo in Sphinx, catalog PDFs, and verae-ops
Add missing package READMEs, expand Sphinx to all runtime modules,
publish a LaTeX/PDF README book, and add verae-ops for Docker,
Proxmox, VMs, dedicated hardware, and service linking. Catalog
defaults to public PDF links for each module README and samples.
2026-09-11 14:36:17 -04:00

71 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""Concatenate package READMEs into LaTeX source + colored PDF (WeasyPrint)."""
from __future__ import annotations
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
CSS = ROOT / "scripts" / "docs-print.css"
OUT = ROOT / "docs" / "sphinx" / "_build" / "latex"
REPOS = [
"overview",
"verae-ops",
"zappier",
"verae-zapier-middleware",
"verae-zapier",
"verae-activate",
"verae-request-splitter",
"verae-archive-worm",
"verae-archive-aggregator",
"verae-tree-node",
"verae-fleet",
"verae-zapier-simulator",
"zapier-user-docs",
"docs-master",
"verae-nats-process",
]
def main() -> None:
OUT.mkdir(parents=True, exist_ok=True)
files = [str(ROOT / "packages" / n / "README.md") for n in REPOS if (ROOT / "packages" / n / "README.md").exists()]
html = OUT / "verae-zapier-modules.html"
pdf = OUT / "verae-zapier-modules.pdf"
tex = OUT / "verae-zapier-readmes.tex"
hdr = OUT / "hdr.html"
hdr.write_text("<style>" + CSS.read_text(encoding="utf-8") + "</style>\n", encoding="utf-8")
subprocess.run(
[
"pandoc",
*files,
"-o",
str(html),
"--standalone",
"--toc",
f"--css={CSS}",
"--metadata=title=Verae Time × Zapier — repository READMEs",
f"--include-in-header={hdr}",
"--syntax-highlighting=breezedark",
],
check=True,
)
subprocess.run(["weasyprint", str(html), str(pdf)], check=True)
subprocess.run(
[
"pandoc",
*files,
"-o",
str(tex),
"--standalone",
"--toc",
"--metadata=title=Verae Time × Zapier repository READMEs",
],
check=True,
)
print(f"wrote {pdf} ({pdf.stat().st_size} bytes) and {tex}")
if __name__ == "__main__":
main()