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.
- Validate your passed HTML files
- Process images in said HTML files
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
Creates a file with a given data
object.
// import the module
const epub = require("quick-epub");
// minimal data object
const 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 epub
epub
.createFile(data)
.then(() => console.log("book done."))
.catch(e => console.error(e));
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
.
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.
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: new Date().toISOString(),
modified: new Date().toISOString()
},
// 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."
}
};
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