master-zapier-plan-draft/scripts/build-readme-latex.py
George Lambert 65bfa544b2
Some checks are pending
offline / test (push) Waiting to run
Fix catalog PDF links; add bring-online guide; feature zappier billing
PDFs rewrite in-document .md/.html links to sibling PDFs. Catalog
start page is GETTING-STARTED (install, first-up, monitor). Billing
and user platform is zappier-edge (original ~/zappier tree).
2026-09-11 14:59:13 -04:00

72 lines
2 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",
f"--lua-filter={ROOT / 'scripts' / 'pdf-links.lua'}",
],
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()