0.0.1 • Published 3 years ago

xiaohu-ebook-generator v0.0.1

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

xiaohu-ebook-generator

将txt按章节分割后,打包成epub文件

Split txt file and generate cover image by JX Wang. Forked from https://github.com/someok/node-toolkit/tree/master/packages/txt-to .

Epub generator by Torsten Dittmann. Forked from https://github.com/TorstenDittmann/omnia-ebook-generator .

Installation

npm i xiaohu-ebook-generator
# or
yarn add xiaohu-ebook-generator

How to use

const EBook = require("xiaohu-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
      },
      txtPath: 'path/a.txt' // txt File path
      progress: (data) => { // progress function
        console.log(data)
      }
    },
    [
      {
        title: 'About the author',
        data: '<h2>Lorem Ipsum</h2>'
      },
      {
        title: 'Lorem ipsum dolor',
        data: '<p>Lorem ipsum dolor ... voluptua.</p>'
      }
    ]);

await 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.txtPath: required. txt file path.
  • opts.progress: default: false. Progress function.

__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