quick-epub
Quickly generate valid EPUB 3.0.1 documents.
This library is based on cyrilis' epub-gen, and is more of a proof-of-concept than an actual library. It was used to learn about the EPUB specification.
Will not
- Validate your passed HTML files
- Process images in said HTML files
Installation
This module is distributed via npm which is bundled with node and should be installed as one of your project's dependencies:
npm install quick-epub --save
Usage
epub.createFile(data)
Creates a file with a given data
object.
// import the moduleconst epub = ; // minimal data objectconst data = title: "White Fang" author: "Jack London" chapters: title: "CHAPTER I - THE TRAIL OF THE MEAT" content: "Dark spruce forest frowned on either side the frozen waterway." title: "CHAPTER II - THE SHE-WOLF" content: "Breakfast eaten and the slim camp-outfit lashed to the sled..." title: "CHAPTER III - THE HUNGER CRY" content: "The day began auspiciously." ; // create epubepub ;
Data Object
At a minimum, the data object must have three properties:
title
- Title of the book. Must be aString
.author
- Author(s) of the book. Must be anArray
containingString
types.chapters
- Actual content of the book. Must be anArray
ofObject
types with the following properties:title
- Title of the chapter. Must be aString
.content
- Main content of the chapter. Must be aString
.
Optional properties
The following properties are optional, it is recommended to at least set output
to something sane.
output
- Filepath/name of file. Defaults to a randomly named epub in the directory of the calling scriptappendChapterTitles
- If set, appends the chapter title at the beginning of each chapter. Defaults tofalse
lang
- Language. Defaults toen
publisher
- Whoever published this fantastic EPUBdescription
- A short blurb/summary of the bookdates
- Published/modified dates. Both default to ISO-8601Date
types formatted asString
typespublished
modified
identifiers
- Digital object identifiers.
Example
const data = // compulsory title: "White Fang" author: "Jack London" "Weedon Smith" chapters: title: "CHAPTER I - THE TRAIL OF THE MEAT" content: "Dark spruce forest frowned on either side the frozen waterway." title: "CHAPTER II - THE SHE-WOLF" content: "Breakfast eaten and the slim camp-outfit lashed to the sled..." title: "CHAPTER III - THE HUNGER CRY" content: "The day began auspiciously." // optional (default values created) output: "Jack London - White Fang.epub" appendChapterTitles: true lang: "en" dates: published: modified: // optional (no default values created) publisher: "Project Gutenberg" description: "The story of a man and a wolf." identifiers: isbn10: "this is definitely not a valid ISBN-10 number" isbn13: "nor is this a valid ISBN-13 number" doi: "yep. not valid either." ;
Acknowledgements
Thanks to:
- Project Gutenberg for all the freely available material to test, especially White Fang!
- cyrilis' epub-gen library
- IDPF for their epub validation tool, aptly titled epubcheck