Skip to content

Latest commit

 

History

History
150 lines (108 loc) · 9.28 KB

README.md

File metadata and controls

150 lines (108 loc) · 9.28 KB

ッツ Ebook Reader

An online e-book reader that supports Yomichan, which is hosted on https://reader.ttsu.app

Features

  • 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

Usage

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:

Control Description
Icon Opens the table of content if available
Icon Allows you to create a bookmark at your current location (keybind b)
Image Displays current auto scroll speed (keybind a/d)
Icon Allows you to execute a custom reader point action
Icon Allows you to enter fullscreen mode (keybind F11)
Icon Navigates you to the settings
Icon Navigates you to the book manager or opens the action menu
Icon Displayed at the current bookmark location
Image Displays your reading progress, click/tap on it to hide

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.

Desktop Keybinds

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

Book Manager

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:

Control Description
Icon Toggles book selection
Icon Selects all books
Icon Allows you to import new books to the library
Icon Allows you to import new books from a folder to the library (desktop only)
Icon Allows you to download data for a bug report
Icon Navigates you to the settings
Icon Opens the action menu
Icon Cancels the current book import/deletion

Storage Limits

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

Self Host

If for some reason you want to host the reader by yourself, you can use the following approach.

Using Docker

  1. Install and launch Docker
  2. Run the commands below
docker build -t ebook-reader -f apps/web/Dockerfile .
docker run --name ebook-reader -d -p 8080:80 ebook-reader
  1. Visit http://localhost:8080 to use the app

Using Docker Compose

  1. Install and launch Docker Compose
  2. Run the command below
docker-compose up
  1. Visit http://localhost:8080 to use the app

Using HTTP Hosting App

  1. Have Node.js and pnpm installed
  2. Run the commands below
cd apps/web
pnpm install --frozen-lockfile
pnpm build
  1. Have your server (such as http-server) point towards apps/web/build