diff --git a/packages/components/Epub/EpubBackend.js b/packages/components/Epub/EpubBackend.js index 6b4d6d24a25cb0cf621f7b9c5767724bd5094534..9d5d74ae8146c9302c1440c27b25bd156fdedaee 100644 --- a/packages/components/Epub/EpubBackend.js +++ b/packages/components/Epub/EpubBackend.js @@ -148,6 +148,20 @@ const EpubBackend = app => { res.status(500).json({ error: error.message }) } }) + app.use('/api/pagedStyler/exportHTML/:id/', async (req, res, next) => { + const { id } = req.params + const path = `${process.cwd()}/uploads/paged/${id}/index.html` + + try { + const file = await readFile(path) + res.setHeader('Content-Type', 'text/html') + res.setHeader('Content-Disposition', `attachment; filename=${id}.html`) + res.write(file, 'binary') + res.end() + } catch (error) { + res.status(500).json({ error: error.message }) + } + }) } const writeFile = (location, content) => @@ -157,5 +171,12 @@ const writeFile = (location, content) => return resolve() }) }) +const readFile = location => + new Promise((resolve, reject) => { + fs.readFile(location, 'binary', (err, data) => { + if (err) return reject(err) + return resolve(data) + }) + }) module.exports = EpubBackend diff --git a/packages/components/Epub/converters/wax-paged-default.js b/packages/components/Epub/converters/wax-paged-default.js index 3cf747bcb7c72077bfc604af0337172434f73231..99fcb1874fd3ec37d08ab52d4523c11b44d320c6 100644 --- a/packages/components/Epub/converters/wax-paged-default.js +++ b/packages/components/Epub/converters/wax-paged-default.js @@ -144,6 +144,16 @@ module.exports = ( } }) + $('highlighter').each((i, elem) => { + const $elem = $(elem) + $elem.replaceWith($elem.text()) + }) + $('ornament').each((i, elem) => { + const $elem = $(elem) + const hr = $('<hr>') + $elem.replaceWith(hr) + }) + // replace inline notes with endnotes $('note').each((i, elem) => { const $elem = $(elem) diff --git a/packages/components/Epub/converters/wax-paged-ucp.js b/packages/components/Epub/converters/wax-paged-ucp.js index 97215b934c26b0b2317e0dfb4b9d8e94c2590f9b..5257a2278b81466ac33832dc37e7cc2287deb0dd 100644 --- a/packages/components/Epub/converters/wax-paged-ucp.js +++ b/packages/components/Epub/converters/wax-paged-ucp.js @@ -144,7 +144,15 @@ module.exports = ( $elem.remove() } }) - + $('highlighter').each((i, elem) => { + const $elem = $(elem) + $elem.replaceWith($elem.text()) + }) + $('ornament').each((i, elem) => { + const $elem = $(elem) + const hr = $('<hr>') + $elem.replaceWith(hr) + }) const hasNotes = $('note').length > 0 if (hasNotes) { diff --git a/packages/components/Epub/converters/wax-vivliostyle-default.js b/packages/components/Epub/converters/wax-vivliostyle-default.js index 4198412e53be33119d20e162730650703c2efce2..15f19d6b73a6b5005a8fff7651dd448f287bb08d 100644 --- a/packages/components/Epub/converters/wax-vivliostyle-default.js +++ b/packages/components/Epub/converters/wax-vivliostyle-default.js @@ -168,6 +168,16 @@ module.exports = ( } }) + $('highlighter').each((i, elem) => { + const $elem = $(elem) + $elem.replaceWith($elem.text()) + }) + $('ornament').each((i, elem) => { + const $elem = $(elem) + const hr = $('<hr>') + $elem.replaceWith(hr) + }) + // replace inline notes with endnotes $('note').each((i, elem) => { const $elem = $(elem) diff --git a/packages/components/Epub/converters/wax-vivliostyle-ucp.js b/packages/components/Epub/converters/wax-vivliostyle-ucp.js index 77107b4f59a6dbd130cf3157c7e551ff72468ad6..79bad790a038482e6f2eb14a1ee4ad052b9a2223 100644 --- a/packages/components/Epub/converters/wax-vivliostyle-ucp.js +++ b/packages/components/Epub/converters/wax-vivliostyle-ucp.js @@ -164,6 +164,17 @@ module.exports = ( $elem.remove() } }) + + $('highlighter').each((i, elem) => { + const $elem = $(elem) + $elem.replaceWith($elem.text()) + }) + $('ornament').each((i, elem) => { + const $elem = $(elem) + const hr = $('<hr>') + $elem.replaceWith(hr) + }) + const hasNotes = $('note').length > 0 if (hasNotes) { diff --git a/packages/components/Epub/pagednation.js b/packages/components/Epub/pagednation.js index 7a3f9cb3a8f702ef22abe1a74c523f06867b3cca..a76df87a34dd4ec1278a7141035cae18fc68deff 100644 --- a/packages/components/Epub/pagednation.js +++ b/packages/components/Epub/pagednation.js @@ -3,7 +3,9 @@ const cheerio = require('cheerio') const create = async (book, parts, resourceRoot, stylesRoot, fontsRoot) => { const output = cheerio.load( `<!DOCTYPE html><html><head><title>${book.title}</title> - <meta charset="UTF-8"></head><body class="hyphenate" lang="en-us"></body></html>`, + <meta charset="UTF-8"></head><body class="hyphenate" lang="en-us"><section class="titlepage"><header><h1 class="booktitle">${ + book.title + }</h1></header></section></body></html>`, ) const TOC = createTOC(parts) output('body').append(TOC.html())