Giter VIP home page Giter VIP logo

omnia-ebook-generator's Introduction

All Contributors

omnia-ebook-generator

Node.js ebook generator using Embedded JavaScript templating.

This library is built with ❤︎ and used by OmniaWrite and 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):


AntonyBoucher

💻

Alejandra Gonzalez

💻

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

omnia-ebook-generator's People

Contributors

torstendittmann avatar allcontributors[bot] avatar alejandra-gonzalez avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.