An online e-book reader that supports Yomichan, which is hosted on https://reader.ttsu.app
- Supports HTMLZ and EPUB files
- Customizable environment (e. g. themes, font size, image blur, furigana settings etc.)
- Continuous / Pagination reader mode
- Vertical / Horizontal reading mode
- Character count and progress display
- Table of content support for EPUB files
- (Auto) bookmark functionality
- Auto scroll (continuous mode)
- Book manager
- Installation and offline capabilities
The first time you enter the page (or have no files loaded yet) you will need to select the books you want to read from your device. You can load files by clicking/tapping on the dropzone or respective Icons. Alternatively, you can also drag & drop files or folders on the manager if your device supports it.
Note: The character count is mainly based on paragraph nodes in the book. Configuring e. g. a very high line height or similar may update the counter more slowly
You can find most of the reader controls in the reader header which you can open by clicking/tapping in the upper area of the page:
Custom reading points and the respective change in the character count in pagination mode are temporary - changing the current page or resizing the reader window will reset them. When having "Selection to Bookmark" enabled and using a custom reading point at the same time, selected text will be prioritized over a custom reading point for positioning bookmarks etc.
Note: Overlapping elements or controls coming from e. g. browser extensions or app wrappers may impact what node will be selected for a custom reading point. Move them out of the reader area or disable them in case of issues. In case the selected node breaks across multiple columns or pages the bookmark may be placed on previous elements instead. You can experiment with the "Avoid Page Break" option, simply fallback to the default bookmark by clearing your selection/custom reading point or selecting a different node.
Note for "Disabled Wheel Navigation": If enabled mouse wheel clicks are intercepted and may not work as expected. E. g. for Yomichan you need to keep the wheel pressed while moving the cursor to trigger a popup etc.
Note: The keys are currently bound to their physical location.
Explanation from MDN:
For example, the code returned is "KeyQ" for the Q key on a QWERTY layout keyboard, but the same code value also represents the ' key on Dvorak keyboards and the A key on AZERTY keyboards.
Key Code | Description |
---|---|
Space | Toggle auto-scroll (continuous mode) |
a | Increase auto-scroll speed |
d | Decrease auto-scroll speed |
b | Create bookmark at your current location |
r | Return to bookmark location |
t | Select a new custom reading point |
PageDown | Move to next page |
PageUp | Move to previous page |
n | Move to next/previous chapter |
m | Move to next/previous chapter |
You can open the book manager by clicking/tapping on the respective icon in the reader. You will be presented with a list of covers for all the imported books with their respective titles and progress (determined by bookmark location). Books are sorted in following priority: last opened/read > last modified/added > no time data stored.
You may:
- Switch books by clicking/tapping on the book covers
- Delete books by clicking/tapping on the delete icon (Warning: Bookmark progress will also get removed along with the book)
- Click/tap on the centered list icon to select all books
- Click/tap on the X icon to deselect all books
You may find the following controls in the manager:
Data like books or bookmarks will be stored locally in your browser storage. Browsers typically apply certain limits on how much a website can store on your computer. Those limits are different across different browsers and options you may have enabled.
When the available disk space is filled up, the quota manager will start clearing out data based on an LRU policy — the least recently used origin will be deleted first, then the next one, until the browser is no longer over the limit.
Therefore your data can be lost based on the amount you stored and how much storage is available. In order to overcome this limitation ttu reader will try to request for persistant storage during data insertion. Based on your browser you will see different behavior. E. g. firefox will ask you for your confirmation while chrome will not display any dialog but automatically grant the permissions if you frequently interacted with / bookmarked the page and / or have granted notification permissions to the site. You can see the current status of persistant storage in the reader settings.
Note: Other browsers may have additional criteria for data eviction which are not affected by this setting. E. g. iOS > 13.3 may delete all your page data if you haven't interacted with the reader for 7 days etc.
For more Information and Details check out this Documentation
If for some reason you want to host the reader by yourself, you can use the following approach.
- Install and launch Docker
- Run the commands below
docker build -t ebook-reader -f apps/web/Dockerfile .
docker run --name ebook-reader -d -p 8080:80 ebook-reader
- Visit http://localhost:8080 to use the app
- Install and launch Docker Compose
- Run the command below
docker-compose up
- Visit http://localhost:8080 to use the app
cd apps/web
pnpm install --frozen-lockfile
pnpm build
- Have your server (such as http-server) point towards
apps/web/build