Highlights
- Conversion is faster than v4 and uses less memory.
- Output may differ (including koboSpan numbering) from v4.
- More kepub renderer workarounds:
- Paths in the manifest/ncx/nav/links are now normalized to prevent them from causing duplicate page counts and broken navigation.
- Improved polyglot HTML generation.
- Many bugfixes:
- Self-closing
<i>tags no longer make the rest of the book italic. - Spans are no longer added inside special elements.
- Much better whitespace handling.
- Headings are no longer hyphenated when hypenation is enabled.
- Content documents with special characters in the path are now processed correctly.
- Self-closing
- More workarounds for malformed books:
- XML 1.1 declarations are no longer rejected.
- Significantly improved handling of malformed OPFs and content documents.
- Significantly improved charset support and detection.
- Malformed zip fields are now dropped.
- CLI improvements:
- File modification time and permissions can now be preserved for the output file.
- KEPUBs are now rejected by default, but can also be copied or reprocessed.
- Improved handling of output path edge cases.
- Dummy titlepage now includes the cover image if known (or automatically detected, if enabled).
- Kepubify no longer includes covergen and seriesmeta (use NickelSeries instead).
For developers/packagers
- Building kepubify now requires Go 1.26+.
- Significantly fewer dependencies.
- JavaScript bindings are now available on NPM.
- Can now be built with TinyGo, with the scheduler disabled.
- Improved test suite.
- The kepubify CLI interface is compatible with v4 (but the output may differ).
- If embedding kepubify, I recommend caching the converted output, or letting users choose between v4/v5, as span numbering has changed slightly in some cases, especially for badly formatted books.