Skip to content

Ensure at least one location per section#1407

Open
overhacked wants to merge 1 commit intofuturepress:masterfrom
overhacked:ensure-location-per-node
Open

Ensure at least one location per section#1407
overhacked wants to merge 1 commit intofuturepress:masterfrom
overhacked:ensure-location-per-node

Conversation

@overhacked
Copy link
Copy Markdown

Previously, if a book had no text content in a section, then no location would be generated. In the pathological case of a book with no text content at all (pictures only), no locations are generated for the entire book. An example of this is the Open Circuits EPUB from No Starch Press (2023).

By moving the "empty node" detection after the creation of the initial opening range, the parsing code ensures that a minimum of one location is generated per section.

Previously, if a book had no text content in a section, then no location
would be generated. In the pathological case of a book with no text
content at all (pictures only), no locations are generated for the
entire book. An example of this is the Open Circuits EPUB from No Starch
Press (2023).

By moving the "empty node" detection after the creation of the initial
opening range, the parsing code ensures that a minimum of one location
is generated per section.

Signed-off-by: Ross Williams <ross@ross-williams.net>
@overhacked overhacked force-pushed the ensure-location-per-node branch from e52a375 to f916d38 Compare February 21, 2025 18:52
@overhacked
Copy link
Copy Markdown
Author

Hello! I was wondering if this might be able to be reviewed so I can nudge the maintainer of calibre-web to update their vendored version of epub.js. Thank you!

hiive pushed a commit to hiive/epub.js that referenced this pull request Apr 6, 2026
…urepress#1285, futurepress#1265, futurepress#1339, futurepress#1407

- futurepress#1410: Fix Navigation.get() ID lookup — strip # before tocById lookup
- futurepress#1393: Fix encoded URI substitution — try decodeURIComponent before regex
- futurepress#1285: Parse fallback attribute in manifest items (EPUB spec compliance)
- futurepress#1265: Treat page numbers as strings — fixes non-numeric page labels (Roman numerals)
- futurepress#1339: Fix TypeScript types — currentLocation() returns Location not DisplayedLocation
- futurepress#1407: Ensure at least one location per section — fixes picture-only EPUBs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant