Releases: veripublica/epubveri
Releases · veripublica/epubveri
Release list
v0.4.4
Added
- CSS findings now report an exact
line:column, closing epubveri's last position gap — every CSS finding (CSS-001/CSS-002/CSS-008/CSS-019and the in-stylesheetRSC-001/RSC-007/RSC-008/RSC-030references) now points at the offending token, e.g.[OEBPS/style.css:3:3]. Built on styloria 0.2 source spans. (#1)
Fixed
OPF-096non-linear reachability now matches epubcheck's self-link rule. Alinear="no"item is reachable if any hyperlink points at it — including a link it makes to itself (a nav landmarks self-link, or a fragment-onlyhref="#…"). The categorical toc-nav exemption from 0.4.2 is removed, so a nav nothing links to is correctly flagged, exactly as epubcheck does. (#1)
Full notes: CHANGELOG.md. Also on crates.io.
v0.4.3
v0.4.3 — fix CSS-008 flood on @media/@supports stylesheets (issue #5)…
v0.4.2
v0.4.2 — fix dc:date timestamps (OPF-054) & non-linear nav reachabili…
v0.4.1
v0.4.1 — fix opf-meta-property-not-empty Schematron rule wrongly firi…
v0.4.0 — rule/params for every multi-site message ID
Added
- The
rule/paramssub-code introduced in 0.3.0 (forRSC-005only) is now populated at every message ID with 2 or more call sites across the crate — 36 additional IDs (RSC-006throughRSC-033,OPF-001throughOPF-092,CSS-008/CSS-015,HTM-004/HTM-057/HTM-060,PKG-007/008/009/012), on top of theRSC-005sites already done. IDs used at exactly one call site are left as-is —idalone is already unambiguous there. - New
Report::push_rulemethod (alongside the existingpush/push_at/push_at_pos/push_at_rule/push_full) for the handful of sites with arule/paramspair but nolocationat all — a whole-container failure (corrupt/empty ZIP) detected before any file is identified.
Full changelog: see CHANGELOG.md
v0.3.0 — structured rule/params on diagnostics
Added
- Every diagnostic can now carry a stable, semantic sub-code (
rule) and the values interpolated into its message (params), alongside the existing epubcheck-compatibleid. This exists because a singleid— especiallyRSC-005, epubcheck's generic RelaxNG/Schematron catch-all — covers many structurally unrelated conditions with only the rendered English sentence to tell them apart.Messagegainedrule: Option<&'static str>(e.g."opf.spine.duplicate_itemref") andparams: Vec<String>.ruleis populated at everyRSC-005call site in the crate except a handful where no stable sub-code is derivable yet (schematron-derived output, and a few "input didn't parse as XML at all" cases) — other message IDs don't haverulepopulated yet and are a candidate for the same treatment later. - Additive:
Report::push_full(with position) andReport::push_at_rule(without) sit alongside the existingpush/push_at/push_at_pos, which are unchanged. The WASM bindings expose the same fields.
Full changelog: see CHANGELOG.md
v0.2.1 — OPF-096b usage downgrade
Fixed
OPF-096("non-linear spine content isn't reachable from the reading order") is now downgraded to a usage-levelOPF-096bwhen the book uses scripting anywhere — matching real epubcheck, which allows for script adding navigation/hyperlinks dynamically that static analysis can't see. Previously always reported as a hard error, which could misfire on a legitimate pattern such as anav.xhtmlplaced in the spine aslinear="no"in a scripted book.
Thanks to forum user DNSB (MobileRead thread) for finding this. See issue #3.
Full changelog: see CHANGELOG.md
v0.2.0 — exact source position on diagnostics
Added
- Every diagnostic can now carry an exact source position (line and column), not just a bare file path.
Messagegained a newposition: Option<Position>field; the CLI's human-readable output now showspath:line:colwhen a position is available (--format idsis unaffected). The WASM bindings expose the samePositiontype. - Additive only:
Report::push_at_possits alongside the existingpush/push_atmethods, which are unchanged. Position is populated at the large majority of check sites; a documented minority (schematron-generated findings, CSS-based checks, ZIP-archive-entry-level checks, and a few "input didn't parse at all" cases) have no coherent position to report and correctly stayNone.
Fixed
frontmatteris a valid EPUB 3 Structural Semantics vocabulary term (sibling tobodymatter/backmatter) but was incorrectly flagged as unknown vocabulary.
Thanks to Kevin Hendricks (author of the Sigil EPUB editor) for the detailed bug report that prompted both of these fixes.
Full changelog: see CHANGELOG.md