/readium-js

Slimmed down version of the repo

Primary LanguageJavaScript

Readium.js

Welcome to Readium.js!

If you want to learn more about the project, check out the press release announcing the project.

Readium.js is a client-side library that provides EPUB 3 support for custom web applications. Readium.js is a project of the Readium Foundation and is closely integrated with ReadiumSDK.

Getting started

There are two ways to start using Readium.js in your application. The first is to include Readium.js using Require.js. The second is to include Readium.js with script tags.

An example of Readium.js loading using Require.js can be found here. An example of script tag loading can be found here.

Downloads:

API documentation can be found here.

Changes from the initial Readium.js project

The initial version of the Readium.js project had a different set of internal javascript modules for "rendering" EPUB content. Given that very similar javascript rendering functionality was being developed for the ReadiumSDK project, the decision was made to adopt the ReadiumSDK javascript components in place of the equivalent Readium.js components. This also provided the opportunity to adopt the ReadiumSDK API.

This change will allow Readium.js to benefit from the resources, attention and testing of the ReadiumSDK project. Readium.js will be able to directly leverage work on the ReadiumSDK to enhance EPUB viewing on the web.

Background

The Readium project began in early 2012 as a web-based demonstration of EPUB 3, approved as a standard by the International Digital Publishing Forum (IDPF) in October, 2011. The initial goal of the project was to produce a simple browser-based "reference system" reader application that fully implemented the new specification.

The inital deployment was a Google Chrome Packaged App. The packaged-app is a 100% dedicated client-side (browser) solution, allowing users to load, read and save publications in the EPUB format. This application, deployed on the Chrome Web Store, now has over 80,000 users. It supports all major EPUB 3 features including fixed layout as well as dynamic pagination of reflow content, media overlays, interactivity, video, audio, global language support, embedded fonts, SVG, etc.

The Readium-SDK project began in early 2013. This project is developing a performant, mobile-focused, industry-strength EPUB 3 SDK (software development kit).

Architecture

A client-side library

Readium.js is a client-side javascript library that can be included in any web application. The library is a single minified file that exposes an API for loading, navigating and manipulating an EPUB publication.

Internal components of the library

The Readium.js library is composed of a few different modules and a stylesheet:

  • epub-fetch: A module responsible for providing ansynchronous fetching of packed and unpacked EPUB resources.
  • epub: A javascript analogue of the core c++ components of ReadiumSDK.
  • epub-renderer: A module that encapsulates the javascript rendering code used in ReadiumSDK. This module is responsible for the layout, behaviour and styling of EPUB contnent and provides most of the methods used to interact with an EPUB.
  • stylesheets: The ReadiumSDK project architecture is such that a CSS stylesheet is written for each environment in which it is deployed. This stylesheet provides the required styles for deploying the ReadiumSDK javascript components in multiple browser environments.

Development and contributing

If you're interested in contributing here on Github, here are some resources to get started:

If you have any questions, please email Dmitry: dmitrym@evidentpoint.com