Skip to content

hubgit/html-epub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

html-epub

This module is responsible for converting an array of HTML chapters (plus a book metadata object) into an EPUB archive.

The output is a stream which can either be piped to an HTTP response or output to a file.

See pubsweet-component-epub for an example implementation.

Install

npm install html-epub --save

or

yarn add html-epub

Example usage in Express

app.use('/books/:book/epub', async (req, res, next) => {
    // book must have `identifier`, `title` and `updated` properties
    const book = BookService.get(req.params.book)

    // each part must have `title` and `content` (HTML) properties
    const parts = book.chapters.map(chapter => ({
      title: chapter.title,
      content: chapter.source
    }))

    // the base path for relative image URLs
    const resourceRoot = path.join(__dirname, 'uploads')

    const epub = new HTMLEPUB(book, {resourceRoot})

    // load the book parts
    await epub.load(parts)
    
    // pipe the zip file to the response stream
    epub.stream(res)
})

About

Archive of pubsweet/html-epub

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published