Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Divina #4

Open
HadrienGardeur opened this issue Apr 22, 2024 · 3 comments
Open

Support for Divina #4

HadrienGardeur opened this issue Apr 22, 2024 · 3 comments
Assignees
Labels
Epic Higher level view of a feature or group of issues

Comments

@HadrienGardeur
Copy link
Member

HadrienGardeur commented Apr 22, 2024

While Readium Web is already capable of handling comics/manga through its EPUB FXL navigator, we'd like to go further by providing a dedicated navigator optimized specifically for image-based navigation using the Divina profile of the Readium Web Publication Manifest.

This navigator would be built on top of <canvas> and need to be able to handle the following type of publications

  • comics
  • manga
  • bandes dessinées
  • continuously scrolled comics (aka webtoons)

This means that we'll need the ability to support:

  • pagination (LTR or RTL, over single pages or speads)
  • continuously-scrolled reading (in any direction, over single pages, spreads or tiles)
  • and guided navigation (probably in a later iteration and separate Epic)

On the server-side, the go-toolkit should be able to parse and serve as Divina:

  • EPUB FXL (specific rules for this inference are still TBD at this point)
  • CBZ files
  • ZIP files containing images

In addition, we'll also need to support obfuscation over individual images of these publications to enable the distribution of some copyrighted content (this will need to be covered in a separate Epic).

@HadrienGardeur HadrienGardeur added the Epic Higher level view of a feature or group of issues label Apr 22, 2024
@llemeurfr
Copy link

Shouldn't we consider that the job is done (or well engaged) via https://github.com/readium/divina-player-js?

@HadrienGardeur
Copy link
Member Author

No, because we want a navigator aligned with what we have in Readium Mobile which isn't the case of https://github.com/readium/divina-player-js.

This means support for the Preferences API among other things.

Keep in mind that this is an Epic as well, which covers work across both toolkits.

@chocolatkey
Copy link
Member

chocolatkey commented May 20, 2024

Just to add, regarding being "build on top of <canvas>", I would not recommend we go for an approach where the reading engine itself is in a <canvas>. We can use a canvas to render individual pages, but things like transitions, scrolling etc. should be implemented using mostly CSS and the rest of the browser engine. We'll save a lot of time not reinventing the wheel and having to optimize for performance and memory usage. Comic readers I have observed that using a purely canvas-based engine are usually lacking many features due to the complexity involved. Not to mention accessibility will become more difficult

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Higher level view of a feature or group of issues
Projects
None yet
Development

No branches or pull requests

3 participants