omnia-ebook-generator
v0.2.1
Published
Node.js ebook generator using Embedded JavaScript templating.
Downloads
11
Readme
Table of Contents
Features
- easy to use: simple to generator
- clean output: every template meets the EPUB requirements
- templates: template system powered by EJS
- small api: with only 3 methods and a single constructor there's not much to learn
Installation
npm i omnia-ebook-generator
# or
yarn add omnia-ebook-generator
How to use
const EBook = require("omnia-ebook-generator");
const ebook = new EBook({
title: "Title of the book", // Title
description: "Description of the book.", // Description
publisher: "Publisher", // Publisher
author: "H.P. Lovecraft", // Author
lang: "en" //2-char language code
cover: {
extension: "png", // File extension
type: "image/png", // Media type
data: "iVBORw....." // base64 string
}
},
[
{
title: 'About the author',
data: '<h2>Lorem Ipsum</h2>'
},
{
title: 'Lorem ipsum dolor',
data: '<p>Lorem ipsum dolor ... voluptua.</p>'
}
]);
ebook.render();
ebook.save('filename.epub');
API
This section provides documentation on how each method works. It's intended to be a technical reference.
const ebook = new EBook(opts, data)
Initialize a new EBook
instance. opts
can also contain the following values:
- opts.id: default:
Random UUIDv4
. Unique identifier of the book. - opts.title: default:
no title
. Title of the book. - opts.description: default: 'no description'. Description of the book.
- opts.publisher: default: 'anonymous'. Listed publisher of the book.
- opts.author: default: 'anonymous'. Listed author of the book.
- opts.tocTitle: default: 'Table Of Contents'. Header used on the Table of Contents page.
- opts.date: default: new Date().toISOString(). Creation date of the book.
- opts.lang: default: 'en'. Used language in the book.
- opts.cover: default: false. See cover.
__opts.cover
Cover
- opts.cover.extension: File extension,
png
for example. - opts.cover.type: default: false. Media type,
media/png
for example. - opts.cover.data: default: false. Base64 encoded image string.
ebook.render({opts})
Renders the complete ebook and prepares it for use.
- opts.use: default:
epub3
. Template to use. - opts.path: default:
./templates
. Template directory. - opts.ejs: default:
{ rmWhitespace: true }
. EJS options object.
See EJS options for an overview of all options.
ebook.save(filename)
Saves the epub to a local path. But needs to be rendered first, see .render()
.
ebook.base64()
Returns a promise with the generated ebook and can be used like this:
const data = await ebook.base64();
// or
ebook.base64().then(data => {
console.log(data);
}
But needs to be rendered first, see .render()
.
License
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!