EPUB3 CFI utility library in JavaScript
This is a software component used by other Readium projects, see https://github.com/readium/readium-shared-js
BSD-3-Clause ( http://opensource.org/licenses/BSD-3-Clause )
See license.txt.
npm install readium-cfi-js
or yarn add readium-cfi-js
This library is bundled in UMD and ES module formats.
- CommonJS
const EPUBcfi = require('readium-cfi-js');
- ES Module
import * as EPUBcfi from 'readium-cfi-js';
- Globally with
window.EPUBcfi
<script src="readium-cfi.umd.js"></script>
Currently not supported as the implementation depends on jQuery and the DOM.
A subset of the API could work without a browser, which may be planned for a future release.
Prerequisites:
- A decent terminal. On Windows, GitShell works great ( http://git-scm.com ), GitBash works too ( https://msysgit.github.io ), and Cygwin adds useful commands ( https://www.cygwin.com ).
- NodeJS ( https://nodejs.org ) v4+ (Note that NodeJS v6+ and NPM v3+ are now supported, including NodeJS v7+ and NPM v4+)
Initial setup:
npm install
(to download dependencies defined inpackage.json
... note that the--production
option can be used to avoid downloading development dependencies, for example when testing only the pre-builtdist
folder contents)
Typical workflow:
- Hack away! (mostly the source code in
./src
and./spec/models
) npm run build
(to update the output bundles in thedist
folder)
Unit tests:
npm run test
(Karma launcher)
Travis (Continuous Integration): https://travis-ci.org/readium/readium-cfi-js/
The dist
directory contains bundled scripts in two module formats:
readium-cfi.umd.js
(and its associated source-map file),
which aggregates all the required code (external library dependencies included, such as jQuery, etc.)
You can include this as CommonJS/AMD or with the global EPUBcfi
Works best for when using Browserify or RequireJS
readium-cfi.esm.js
(and its associated source-map file),
also aggregates all the required code
Works best for rollup.js or webpack
All packages "owned" and maintained by the Readium Foundation are listed here: https://www.npmjs.com/~readium