github ePubLift/epublift cli-v4.3.0

latest releases: web-v1.28.1, web-v1.28.0
7 hours ago

Fixed

  • Test shelf, 562 books, repair -y then upgrade: 394 → 427 come out valid
    (cli-v4.2.0 → cli-v4.3.0), and no book has more errors than before. The
    changes below add up to that.
  • Upgrading an EPUB 2 book no longer makes it invalid over layout attributes
    that EPUB 2 allowed and EPUB 3 does not: an image sized in percent
    (<img width="40%">), a table's cellspacing, cellpadding, border,
    width and height, width, height and valign on its cells, and a
    line break's clear (<br clear="all">). Each
    is written as the CSS the HTML Standard maps it to, as a class rule in
    epublift-presentational.css, wherever the book's own CSS doesn't already
    set that property and none of its selectors reads the attribute; the rest
    are left as written and counted in the report. See docs/usage.md.
  • The upgrade renames the elements HTML made obsolete to their HTML
    counterparts, under the same checks: <strike> → <s>, <big> → span
    at font-size: larger, <center> around inline content → div at
    text-align: center, <font face size> → span with font-family and
    the legacy size keyword. <font color> and size="7" are left as they are.
    Test shelf: all 14 books holding these elements lose 162 → 67 findings, and
    4 come out valid.
  • The upgrade's closing epubsana pass also points the package's
    unique-identifier at the book's one real identifier when the element it
    names is empty (fix.package_identifier; declined when the book holds two
    candidates, a UUID and an ISBN say). Eight books on the test shelf that
    stayed invalid after repair now come out of the upgrade valid.
  • The upgrade's closing pass also renames an id the upgrade itself made
    invalid, with every link to it (fix.content_document_invalid_id). XHTML
    1.x trimmed the spaces from an id through its DTD, HTML does not, so a
    valid EPUB 2 book with id="k10 " came out invalid. One book on the test
    shelf; 426 → 427 valid, none worse.
  • repair (CLI and web) fixes two more defects, from epubsana 0.34.0: a
    list placed directly inside another list instead of inside its item
    (<ul><li>…</li><ul>…</ul> — common in tables of contents) moves into
    the item before it, and an image declared as one standard type but holding
    another (a PNG declared image/jpeg) gets its declaration corrected.
    Test shelf, repair then upgrade: 418 → 426 valid books, none worse.

Changed

  • veripublica conventions v0.7 (a long option name means one thing in
    every family tool). Three meta spellings change; the old ones still
    work in 4.x, print a warning on stderr, and go in the next major:
    • meta enrich --lang → --assume-language (--language writes
      dc:language; this one only steers the lookup);
    • meta enrich --cover → --include-cover (meta set --cover takes an
      image path);
    • meta show --json → meta show --format metadata (--json is the
      shared envelope in check).
  • The check and repair JSON envelopes now say "convention": "0.7".
  • Optimize writes out the named characters an XHTML 1.x DOCTYPE declared
    (&nbsp;, &rsquo;, …) when it replaces that DOCTYPE with EPUB 3's,
    instead of leaving them undeclared for the final repair pass. Same output,
    much faster on books with many documents: an 805-document book took 11
    minutes on the command line and timed out on the web; it now takes 5
    seconds.
  • epubveri 0.31.0, epubsana 0.34.0 and kepubverto 0.2.3 (crates and the
    web's Validate and Repair modules together), on styloria 0.15.

Security

  • HTTPS (metadata lookup, OCR model download, Smart Import): rustls-webpki
    0.103.16 and webpki-roots 1.0.10 (RUSTSEC-2026-0382, RUSTSEC-2026-0381:
    distrusted intermediates could be accepted).

Full Changelog: cli-v4.2.0...cli-v4.3.0

Don't miss a new epublift release

NewReleases is sending notifications on new releases.