mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-04 15:09:16 +02:00
updated readme
This commit is contained in:
parent
5058ced1c4
commit
06f3f35dd6
1 changed files with 148 additions and 2 deletions
150
README.md
150
README.md
|
@ -1,3 +1,149 @@
|
||||||
npm install
|
Epub.js v0.3
|
||||||
bower install
|
================================
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Epub.js is a JavaScript library for rendering ePub documents in the browser, across many devices.
|
||||||
|
|
||||||
|
Epub.js provides an interface for common ebook functions (such as rendering, persistence and pagination) without the need to develop a dedicated application or plugin. Importantly, it has an incredibly permissive [Free BSD](http://en.wikipedia.org/wiki/BSD_licenses) license.
|
||||||
|
|
||||||
|
[Try it while reading Moby Dick](http://futurepress.github.com/epub.js/reader/)
|
||||||
|
|
||||||
|
|
||||||
|
Why EPUB
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The [EPUB standard](http://www.idpf.org/epub/30/spec/epub30-overview.html) is a widely used and easily convertible format. Many books are currently in this format, and it is convertible to many other formats (such as PDF, Mobi and iBooks).
|
||||||
|
|
||||||
|
An unzipped ePUB3 is a collection of HTML5 files, CSS, images and other media – just like any other website. However, it enforces a schema of book components, which allows us to render a book and its parts based on a controlled vocabulary.
|
||||||
|
|
||||||
|
More specifically, the ePUB schema standardizes the table of contents, provides a manifest that enables the caching of the entire book, and separates the storage of the content from how it’s displayed.
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Get the minified code from the build folder:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="../dist/epub.min.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
Setup a element to render to:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<div onclick="Book.prevPage();">‹</div>
|
||||||
|
<div id="area"></div>
|
||||||
|
<div onclick="Book.nextPage();">›</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the new ePub, and then render it to that element:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script>
|
||||||
|
var book = ePub("url/to/book/package.opf");
|
||||||
|
var rendition = book.renderTo("area", {width: 600, height: 400});
|
||||||
|
var displayed = rendition.display();
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
Running Locally
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
install [node.js](http://nodejs.org/)
|
||||||
|
|
||||||
|
install the project dependences with npm
|
||||||
|
```javascript
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
then you can run the reader locally with the command
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
./tools/serve
|
||||||
|
```
|
||||||
|
|
||||||
|
install [bower](http://bower.io/)
|
||||||
|
```javascript
|
||||||
|
bower install
|
||||||
|
```
|
||||||
|
Examples
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
See examples folder
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Once you start a server you can run the [QUnit](http://qunitjs.com/) tests at [http://localhost:8080/tests/](http://localhost:8080/tests/)
|
||||||
|
|
||||||
|
You can download the test books from https://github.com/futurepress/books by running:
|
||||||
|
```
|
||||||
|
git submodule update --init --recursive
|
||||||
|
```
|
||||||
|
|
||||||
|
Then you can pull the latest with:
|
||||||
|
```
|
||||||
|
git submodule foreach git pull origin master
|
||||||
|
```
|
||||||
|
|
||||||
|
Building for Distribution
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Builds are concatenated and minified using [gulp](http://gulpjs.com/)
|
||||||
|
|
||||||
|
To generate a new build run
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
gulp
|
||||||
|
```
|
||||||
|
|
||||||
|
or to continuously build run
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
gulp watch
|
||||||
|
```
|
||||||
|
|
||||||
|
Hooks
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Similar to a plugins, Epub.js implements events that can be "hooked" into. Thus you can interact with and manipulate the contents of the book.
|
||||||
|
|
||||||
|
Examples of this functionality is loading videos from YouTube links before displaying a chapters contents or implementing annotation.
|
||||||
|
|
||||||
|
Hooks require a event to latch onto and a callback for when they are finished.
|
||||||
|
|
||||||
|
Example hook:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
EPUBJS.Hooks.register("beforeChapterDisplay").example = function(callback, renderer){
|
||||||
|
|
||||||
|
var elements = render.doc.querySelectorAll('[video]'),
|
||||||
|
items = Array.prototype.slice.call(elements);
|
||||||
|
|
||||||
|
items.forEach(function(item){
|
||||||
|
//-- do something with the video item
|
||||||
|
}
|
||||||
|
|
||||||
|
if(callback) callback();
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Additional Resources
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
[Epub.js Developer Mailing List](https://groups.google.com/forum/#!forum/epubjs)
|
||||||
|
|
||||||
|
IRC Server: freenode.net Channel: #epub.js
|
||||||
|
|
||||||
|
Follow us on twitter: @Epubjs
|
||||||
|
|
||||||
|
+ http://twitter.com/#!/Epubjs
|
||||||
|
|
||||||
|
Other
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
EPUB is a registered trademark of the [IDPF](http://idpf.org/).
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue