node package manager

hpubjs

An hpub reader and writer

hpubjs provides access to hpub files in node.js applications.

via npm:

$ npm install hpubjs
 
 
hpub = require("hpub");
 
// un-packing book to a folder
reader = new hpub.Reader("path/to/book.hpub");
reader.read(function(err) {
  reader.extract("test/folder", function(err){
    // do whatever you want with extracted publication
  });
});
 

You can read meta information or any other file without extracting the whole book

 
// reading meta information (from book.json) without un-packing the book
reader = new hpub.Reader("path/to/book.hpub")
reader.read(function(err) {
  meta = reader.meta();
  // do something with meta information...
});
 
// you can extract any file inside book.hpub to buffer
reader = new hpub.Reader("path/to/book.hpub")
reader.read(function(err) {
  bufferedPage = reader.getFile('page-000.html');
  // ... do something with it
});
 
 
hpub = require("hpub");
 
writer = new hpub.Writer("./test/hpub_samples/book_to_be");
 
// prepare meta information
meta = {
  hpub: 1,
  title: "Title of the book",
  author: ['First Author', 'Other Author'],
  creator: ['fagbokforlaget'],
  date: "2011-01-01,
  url: 'http://example.com/book/thisbook', 
  cover: 'book.png',
  publisher: 'Fagbokforlaget',
  orientation: 'both',
  zoomable: true,
};
 
// add them to our hpub
writer.addMeta(meta);
 
// add one or more pages
writer.addPage("page-000.html");
 
// if assets are required, add them:
writer.assets.addFolders('css', 'js'); // list folders separeted by coma
writer.assets.addFile('path/to/file.ext'); // one file at a time
 
// build the book (book.json is going to be created)
writer.build(function(err) {
  // book.json should be created by now
 
  // if you need a book.hpub it's time to do this now:
  writer.pack("tmp/book", function(err, size) {
      // the book is ready!
  });
});
 
 
$ npm test
 

Coverage (Make sure you have installed jscoverage (it's easy sudo aptitude install jscoverage or brew jscoverage)

 
$ npm test-cov