mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-03 14:59:18 +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
|
||||
bower install
|
||||
Epub.js v0.3
|
||||
================================
|
||||
|
||||

|
||||
|
||||
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