View Single Post
Old 10-14-2026, 03:05 AM   #52
Kayadelenium
Addict
Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.Kayadelenium ought to be getting tired of karma fortunes by now.
 
Kayadelenium's Avatar
 
Posts: 245
Karma: 364036
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
epubsana 0.26.0

https://github.com/veripublica/epubs...es/tag/v0.26.0

As before: your original file is never modified, and the repaired copy is written beside it. Every fix is shown to you before it is made, and the run ends with a report of exactly what changed. The browser version needs no install and uploads nothing: https://veripublica.github.io/epubsana/

This release has two new repairs and one stricter check. The stricter check is the part you may need to act on.

New repairs
  • SVG attribute names that lost their capitals. Some tools treat a book's XHTML as HTML and write viewbox instead of viewBox, or preserveaspectratio instead of preserveAspectRatio. A browser still understands the lowercase names, but a reading system that reads the file as XML ignores them, so a cover image can lose its scaling. epubsana now gives each name back its capitals, taken from the HTML standard's own table of these names. Only the name changes. Before it offers the fix, it checks the result with the validator, and it leaves out any rename the validator would still reject.
  • A text direction written in capitals. calibre sometimes writes dir="LTR" on the body. A browser reads that as ltr, but an EPUB 2 book has to say ltr in lowercase. epubsana now lowercases LTR and RTL and changes nothing else. Any other value is left alone.

Both are offered as safe fixes, the kind --auto-safe applies without asking.

A stricter check on EPUB 2 books

epubsana checks books with epubveri, and it now requires epubveri 0.26.0. Since its 0.25.0 release, epubveri checks the style, script, meta and base elements of an EPUB 2 book the way epubcheck does. For example, a style element with a class attribute, or with no type attribute, is now an error. kepubverto found this, because its converter wrote such a style element and epubveri did not flag it.

epubsana does not repair these errors yet. So a book that has them was reported valid after repair before, and it is not now: the run ends with exit status 1 and the errors stay in the report. None of the books in my own library have these errors, so this changed nothing for me. If you repaired EPUB 2 books with an earlier version, a current epubveri or epubcheck will show you whether any of them are affected.

Not built

Some calibre-split chapters (the ..._split_001.html files) have no title element at all. epubsana fills an empty title from the book's table of contents or the chapter's first heading, but these files have neither: the table of contents names only the first part, and the file opens with a paragraph. Copying a title from a neighbouring file would be a guess, so these stay reported.

For plugin authors and library users

The JSON envelope now says "convention": "0.7", because epubsana follows version 0.7 of the veripublica conventions. Nothing else in the output changed. The new repairs report fix_id fix.svg_attribute_case and fix.dir_case.

The ask

Same as always. epubsana checks its own repairs with epubveri, so it cannot see damage epubveri cannot see. If a repair leaves one of your books worse, please tell me here. The same goes for a book that is still reported valid when epubcheck disagrees.

crates.io: https://crates.io/crates/epubsana. Command-line binaries for Windows, macOS and Linux are on the releases page.
Kayadelenium is offline   Reply With Quote