# futurepress/epub.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/futurepress-epub-js).**

6,873 stars · 1,186 forks · JavaScript · other

## Links

- GitHub: https://github.com/futurepress/epub.js
- Homepage: http://futurepress.org
- awesome-repositories: https://awesome-repositories.com/repository/futurepress-epub-js.md

## Topics

`epub`

## Description

epub.js is a JavaScript library for parsing and displaying EPUB files within a web browser. It functions as a digital publication layout engine and rendering library that enables the creation of browser-based eBook readers with support for both paginated spreads and continuous scrolling.

The project provides a specialized framework for interactive eBook annotation and precise location tracking. It uses Content Fragment Identifiers to represent text positions as unique strings, allowing for stable bookmarking, text highlighting, and note-taking.

The library covers a broad range of capabilities, including EPUB content parsing, typography and theme customization, and reader progress tracking. It also includes tools for searching section text and manipulating document layouts via viewport scaling and document sandboxing.

## Tags

### Content Management & Publishing

- [Digital Book Renderers](https://awesome-repositories.com/f/content-management-publishing/digital-book-renderers.md) — Implements a comprehensive system for rendering digital books in the browser with paginated and continuous scrolling views. ([source](http://futurepress.github.io/epub.js/examples/))
- [Content Fragment Identifiers](https://awesome-repositories.com/f/content-management-publishing/content-fragment-identifiers.md) — Implements a specialized system using Content Fragment Identifiers to track precise text positions for stable bookmarks and annotations.
- [Document Rendering](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/rendering-visualization/document-rendering.md) — Renders document pages onto a visual canvas using configurable layouts and viewing directions. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Digital Content Annotations](https://awesome-repositories.com/f/content-management-publishing/digital-content-annotations.md) — Supports adding, removing, and styling highlights and marks on specific text ranges using location identifiers. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Digital Publication Renderers](https://awesome-repositories.com/f/content-management-publishing/digital-publication-renderers.md) — Provides a layout engine for rendering e-books and digital publications within a browser environment.
- [EPUB Structure Parsing](https://awesome-repositories.com/f/content-management-publishing/epub-structure-parsing.md) — Provides tools to programmatically extract the spine and manifest of EPUB documents for building navigation menus. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Web-Based Readers](https://awesome-repositories.com/f/content-management-publishing/media-management/audiobook-servers/e-book-servers/web-based-readers.md) — Offers a set of tools for building web-based readers with integrated pagination and scrolling.
- [Reading Location Management](https://awesome-repositories.com/f/content-management-publishing/reading-location-management.md) — Generates and converts reading positions between percentages, page numbers, and precise location identifiers. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Reading Progress Tracking](https://awesome-repositories.com/f/content-management-publishing/reading-progress-tracking.md) — Tracks and persists the exact reading position and user preferences across different sessions.

### Software Engineering & Architecture

- [Content Fragment Identifiers](https://awesome-repositories.com/f/software-engineering-architecture/content-fragment-identifiers.md) — Uses Content Fragment Identifiers to track and resolve precise text positions for stable bookmarking and highlights. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Lifecycle Event Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks.md) — Allows external scripts to intercept the loading and rendering process via registered callback functions.

### User Interface & Experience

- [Layout Modes](https://awesome-repositories.com/f/user-interface-experience/content-dividers/content-sectioning/layout-modes.md) — Supports multiple viewing modes including paginated spreads and continuous scrolling for digital publications. ([source](https://cdn.jsdelivr.net/gh/futurepress/epub.js@master/README.md))
- [Pagination Controls](https://awesome-repositories.com/f/user-interface-experience/navigation-components/pagination-controls.md) — Provides pagination controls to move sequentially through a document, simulating a traditional reading experience. ([source](https://futurepress.github.io/epubjs-reader/))
- [Pagination Navigation](https://awesome-repositories.com/f/user-interface-experience/pagination-navigation.md) — Handles pagination and page-turning logic to move through documents sequentially or via location jumps. ([source](https://futurepress.github.io/epub.js/documentation/))
- [Document Annotators](https://awesome-repositories.com/f/user-interface-experience/text-highlighting/document-annotators.md) — Captures and displays text highlights and notes within the document to track reader progress. ([source](http://futurepress.github.io/epub.js/examples/))
- [Content Layout Controls](https://awesome-repositories.com/f/user-interface-experience/content-layout-controls.md) — Controls the viewport, text direction, writing mode, and column scaling of the rendered content. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [DOM Range Manipulations](https://awesome-repositories.com/f/user-interface-experience/dom-range-manipulations.md) — Maps visual text selections to internal document identifiers by calculating paths from the root node.
- [Typography](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/typography-and-iconography/typography.md) — Allows modification of font sizes and families to customize how text appears to the reader. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Visual Themes](https://awesome-repositories.com/f/user-interface-experience/visual-themes.md) — Applies CSS stylesheets or inline style objects to change the overall visual appearance of rendered text. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))

### Web Development

- [Web-Based Readers](https://awesome-repositories.com/f/web-development/document-format-converters/client-side-document-toolkits/web-based-readers.md) — Provides a browser-based interface for rendering and interacting with EPUB documents.
- [Spine-Based Loading](https://awesome-repositories.com/f/web-development/dynamic-content-loading/spine-based-loading.md) — Loads and renders document sections sequentially based on the EPUB manifest list defining the book's order.
- [EPUB Rendering Libraries](https://awesome-repositories.com/f/web-development/epub-rendering-libraries.md) — A JavaScript library for parsing and displaying EPUB files in the browser using configurable layouts.
- [Asset Injection](https://awesome-repositories.com/f/web-development/document-head-management/stylesheet-injection/asset-injection.md) — Enables appending custom stylesheets and scripts into the document head to style and enhance rendered content. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [Layout Manipulators](https://awesome-repositories.com/f/web-development/dynamic-dom-manipulation/layout-manipulators.md) — Provides dynamic control over pagination and viewport scaling through the injection of stylesheets and DOM manipulation.

### Data & Databases

- [Text Search and Marking](https://awesome-repositories.com/f/data-databases/text-search-and-marking.md) — Allows locating specific text strings within document sections and returning their positions as ranges. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))

### Development Tools & Productivity

- [Document Structure Navigators](https://awesome-repositories.com/f/development-tools-productivity/documentation-navigation/document-structure-navigators.md) — Allows movement through content using sequential page navigation or jumps to specific locations via identifiers. ([source](https://github.com/futurepress/epub.js/blob/master/documentation/md/API.md))
- [User Preference Persistence](https://awesome-repositories.com/f/development-tools-productivity/user-preference-persistence.md) — Saves and restores the reader's current progress and UI preferences across different sessions. ([source](https://futurepress.github.io/epub.js/documentation/))

### Graphics & Multimedia

- [Render Lifecycle Events](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/ui-component-lifecycle-engines/component-rendering-lifecycles/render-lifecycle-events.md) — Registers custom functions to manipulate content or inject assets during specific rendering lifecycle stages. ([source](https://cdn.jsdelivr.net/gh/futurepress/epub.js@master/README.md))
- [Local File System Integration](https://awesome-repositories.com/f/graphics-multimedia/local-file-system-integration.md) — Enables opening and rendering EPUB documents uploaded by users from their local file system. ([source](http://futurepress.github.io/epub.js/examples/))

### Security & Cryptography

- [Iframe Sandboxing](https://awesome-repositories.com/f/security-cryptography/third-party-script-security/iframe-sandboxing.md) — Renders book content within isolated iframes to prevent style leakage and ensure a controlled execution environment.

### System Administration & Monitoring

- [Document Bookmarks](https://awesome-repositories.com/f/system-administration-monitoring/multi-pane-terminal-managers/pane-bookmarking/document-bookmarks.md) — Tracks specific locations within a document to allow users to return to saved pages or sections. ([source](https://futurepress.github.io/epubjs-reader/))
