refactor(epub): replace Kroki HTTP dependency with local mmdc rendering (#10) (#52)

* refactor(epub): replace Kroki HTTP dependency with local mmdc rendering (#10)

Remove httpx/tenacity dependencies and Kroki.io API calls from the EPUB
build pipeline. MermaidRenderer now invokes mmdc (mermaid-cli) as a local
subprocess, eliminating intermittent CI failures caused by network
unavailability. CI workflow installs @mermaid-js/mermaid-cli before build.

* fix(epub): add subprocess timeout and fix deduplication log count

- Add 60s timeout to mmdc subprocess.run to prevent hanging builds
  when Chromium/Puppeteer stalls in headless CI environments
- Fix misleading log that printed unique/total as equal counts;
  now logs "N unique diagrams (M total blocks)" explicitly
- Add test_render_all_timeout and strengthen deduplication assertion
This commit is contained in:
Luong NGUYEN
2026-04-06 23:44:59 +02:00
committed by GitHub
parent 6cbaa4dd52
commit e76bbe40f2
3 changed files with 205 additions and 129 deletions
+8
View File
@@ -17,6 +17,14 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Mermaid CLI
run: npm install -g @mermaid-js/mermaid-cli
- name: Build EPUB
run: uv run scripts/build_epub.py