diff options
| author | Simen A. W. Olsen <hello@simenandre.no> | 2026-05-29 00:07:19 +0200 |
|---|---|---|
| committer | Simen A. W. Olsen <hello@simenandre.no> | 2026-05-29 00:07:19 +0200 |
| commit | b2537972f025ac4f47290328770e3be5ad778b4a (patch) | |
| tree | 0d7c6396ced3bdba3e2109667694d2925e936f4e | |
| parent | 0806fecb47f5a2a26e73ca8b6e28c08f9945ef75 (diff) | |
| download | ziglang-docs-epub-b2537972f025ac4f47290328770e3be5ad778b4a.tar.gz ziglang-docs-epub-b2537972f025ac4f47290328770e3be5ad778b4a.zip | |
feat: add EPUB validation with epubcheck
| -rw-r--r-- | .forgejo/workflows/build-epubs.yml | 6 | ||||
| -rw-r--r-- | README.md | 13 |
2 files changed, 18 insertions, 1 deletions
diff --git a/.forgejo/workflows/build-epubs.yml b/.forgejo/workflows/build-epubs.yml index 80ecf5d..e18556f 100644 --- a/.forgejo/workflows/build-epubs.yml +++ b/.forgejo/workflows/build-epubs.yml @@ -14,7 +14,8 @@ jobs: - name: Install prerequisites run: | apt-get update - apt-get install -y --no-install-recommends ca-certificates curl xz-utils git + apt-get install -y --no-install-recommends ca-certificates curl xz-utils git \ + default-jre-headless epubcheck - uses: actions/checkout@v4 @@ -31,6 +32,9 @@ jobs: - name: Build EPUBs run: zig build run + - name: Validate EPUBs + run: ./validate.sh + - name: Commit updated EPUBs run: | set -eux @@ -59,6 +59,19 @@ zig build test # run unit tests EPUBs land in `epubs/zig-<version>.epub`. +### Validating output + +The tool guarantees well-formed XHTML, but full EPUB3 conformance (the kind of +thing Kindle's "Send to Kindle" enforces) is checked with +[epubcheck](https://github.com/w3c/epubcheck), the official validator: + +```sh +brew install epubcheck # one-time (needs a JRE) +./validate.sh # runs epubcheck on every epub; non-zero exit on errors +``` + +`validate.sh` fails loudly if any EPUB has errors, so it doubles as a CI gate. + ## Continuous integration `.forgejo/workflows/build-epubs.yml` runs on [Codeberg](https://codeberg.org) |
