import sys
from pathlib import Path
HERE = Path(__file__).parent
ROOT = HERE.parent.parent
sys.path.insert(0, str(ROOT / "python"))
from ikat import compile_standalone, fence_to_tikz from ikat.pipeline import extract_fences
OUT = HERE / "out"
NAMES = ["fig-branch-tree", "fig-ledger-flow", "fig-read-questions", "fig-stratum"]
def main() -> int:
OUT.mkdir(exist_ok=True)
for name in NAMES:
md = (HERE / f"{name}.md").read_text(encoding="utf-8")
fences = [(l, b) for l, _, b in extract_fences(md) if l in ("mermaid", "chart")]
assert len(fences) == 1, f"{name}: need exactly 1 fence, got {len(fences)}"
tikz = fence_to_tikz(*fences[0])
(OUT / f"{name}.tex").write_text(tikz, encoding="utf-8")
pdf = compile_standalone(tikz, OUT, engine="pdflatex")
(OUT / f"{name}.pdf").unlink(missing_ok=True) pdf.rename(OUT / f"{name}.pdf")
print(f"pdf {name} ok")
return 0
if __name__ == "__main__":
raise SystemExit(main())