Skip to content
This repository has been archived by the owner on Feb 9, 2023. It is now read-only.

Shu Epub Progress #18

Open
4 tasks
getBoolean opened this issue Aug 4, 2022 · 0 comments
Open
4 tasks

Shu Epub Progress #18

getBoolean opened this issue Aug 4, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@getBoolean
Copy link
Owner

getBoolean commented Aug 4, 2022

This issue is to track the progress of shu_epub

  • Finish planning API (See
  • Implement class diagram
  • Abstract Book class to support other eBook types (possibly extract to another package shu_core)
  • HTML utilities
old plans
- [x] Models
- [x] Reader Controllers
  - [x] EpubContainerReaderController
  - [x] EpubPackageReaderController
    - [ ] Support Epub 2 [Out-Of-Line XML Islands](http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.3.1.2), removed in Epub 3
  - [x] EpubNavigationReaderController
  - [x] EpubDetailsReaderController
    - Combines the container, package, and navigation into one class
- [ ] Publication/Content Controller
- [ ] **EpubControllerBase** (abstract)
  - [x] Future getFilePaths - Method to get filepaths to all files in the epub
  - [x] Future getFileBytes - Method to get bytes of file from the filepath
  - [x] getEpubDetails
  - others tbd...
- [x] **EpubArchiveController** extends **EpubController**
  - [x] Given the loaded `.epub` file bytes
  - [x] Overrides getFilePaths and getFileBytes to use `Archive`/`ArchiveFile`
- [x] **EpubArchiveIOController** extends **EpubController**
  - [x] Given a file reference/path
  - [x] Overrides getFilePaths and getFileBytes to use filestream `Archive`/`ArchiveFile`
- [x] (In `example.dart`) EpubExtractedController extends **EpubController**
  - [x] Given a directory reference/path to the root folder of the extracted epub
  - [x] Overrides getFilePaths and getFileBytes to use async `dart:io`
  - Due to it requiring `dart:io`, it is not included in this package
- [ ] Function/Class to declare supported epub content media types
  - Default is `application/xhtml+xml`
  - Old epubs may use the deprecated `application/x-dtbook+xml` and `text/x-eob1-document`
- [ ] EpubBook class to simplify access to Epub content and metadata
  - [x] EpubDetails (contains EpubContainer, EpubPackage, and EpubNavigation)
  - [ ] EpubFiles (all files listed in manifest)
    - [ ] Don't include items that are Out-Of-Line XML Islands
  - [ ] EpubReadingOrder (spine)
    - [ ] List of EpubFile (should all be xhtml files?)
    - [ ] Files are from manifest items included in the spine, in the same order as listed in the spine.
    Automatically uses the fallback file if required-modules is specified, or if the media-type is not
    included in the supported mediaTypes configuration.
  - [ ] EpubTableOfContents (ncx)
    - [ ] Navigation Metadata
    - [ ] Navigation Title
    - [ ] Navigation Author
    - [ ] Navigation Points (navMap)
      - [ ] File
      - [ ] CFI Location
    - [ ] Pages *Optional* (pageList)
    - [ ] Other Navigation Lists *Optional* (navList)
- [ ] CFI Generator
@getBoolean getBoolean added the enhancement New feature or request label Aug 4, 2022
@getBoolean getBoolean self-assigned this Aug 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant