A collection of libraries for annotating content in various formats using data from xyAnnotations.
- Epub.js: Insert annotations into EPUB books rendered with Epub.js v0.3.
- HTML: Insert annotations into HTML strings. Allows you to annotate books or just about anything that renders to HTML.
- DOM: Insert annotations into the HTML DOM. (abandoned / incomplete)
- React: View annotations using React components.
- Tests: Tests and examples for the rest of the packages.
- Core: Core utilities used by other packages.
- CLI: Command line tools for generating and converting annotations from and to multiple different sources and targets.
Please note that not all of these packages have the same licenses. Check the LICENSE.md
file within each package's directory. For inquiries regarding licensing: send us a message.
Any improvements or fixes are greatly appreciated, just submit a pull request.
The most important thing if you're interested in contributing, is understanding how the build process and dependencies work. Each package has its own contained build process (through Webpack) and its own dependencies.
For example, due to the way the dependency system works, if you make a change in html
, and want to see that change in tests
, you have to do:
$ cd html
$ webpack-cli # build changes in html package
$ cd ../epubjs
$ webpack-cli # update epubjs to use new html build
$ cd ../tests
$ webpack-cli # update tests to use new epubjs (and html) build
$ node src/server
The full build command, called from the root repo directory:
$ cd core && webpack-cli && cd ../html && webpack-cli && cd ../epubjs && webpack-cli && cd ../react && webpack-cli && cd ../tests && webpack-cli && cd ../ && node tests/src/server
Note that you should first npm link
the appropriate packages to load the locally modified copies.