0.2.1 • Published 3 years ago

omnia-ebook-generator v0.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

All Contributors

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

MIT

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

0.2.1

3 years ago

0.1.2

4 years ago

0.1.0

4 years ago

0.1.1

4 years ago

0.0.7

4 years ago