UNPKG

honkit

Version:

HonKit is building beautiful books using Markdown.

70 lines (68 loc) 3.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const extend_1 = __importDefault(require("extend")); const promise_1 = __importDefault(require("../../utils/promise")); const getPDFTemplate_1 = __importDefault(require("./getPDFTemplate")); const getCoverPath_1 = __importDefault(require("./getCoverPath")); /** Generate options for ebook-convert @param {Output} @return {Promise<Object>} */ function getConvertOptions(output) { const options = output.getOptions(); const format = options.get("format"); const book = output.getBook(); const config = book.getConfig(); return (0, promise_1.default)().then(() => { const coverPath = (0, getCoverPath_1.default)(output); let options = { "--cover": coverPath, "--title": config.getValue("title"), "--comments": config.getValue("description"), "--isbn": config.getValue("isbn"), "--authors": config.getValue("author"), "--author-sort": config.getValue("authorSort"), "--language": book.getLanguage() || config.getValue("language"), "--book-producer": config.getValue("producer") || "HonKit", "--publisher": config.getValue("publisher") || "HonKit", "--pubdate": config.getValue("pubdate"), "--series": config.getValue("series"), "--series-index": config.getValue("seriesIndex"), "--chapter": "descendant-or-self::*[contains(concat(' ', normalize-space(@class), ' '), ' book-chapter ')]", "--level1-toc": "descendant-or-self::*[contains(concat(' ', normalize-space(@class), ' '), ' book-chapter-1 ')]", "--level2-toc": "descendant-or-self::*[contains(concat(' ', normalize-space(@class), ' '), ' book-chapter-2 ')]", "--level3-toc": "descendant-or-self::*[contains(concat(' ', normalize-space(@class), ' '), ' book-chapter-3 ')]", "--max-levels": "1", "--no-chapters-in-toc": true, "--breadth-first": true, "--dont-split-on-page-breaks": format === "epub" ? true : undefined }; if (format !== "pdf") { return options; } return promise_1.default.all([(0, getPDFTemplate_1.default)(output, "header"), (0, getPDFTemplate_1.default)(output, "footer")]).spread((headerTpl, footerTpl) => { const pdfOptions = config.getValue("pdf").toJS(); return (options = (0, extend_1.default)(options, { "--chapter-mark": String(pdfOptions.chapterMark), "--page-breaks-before": String(pdfOptions.pageBreaksBefore), "--pdf-page-margin-left": String(pdfOptions.margin.left), "--pdf-page-margin-right": String(pdfOptions.margin.right), "--pdf-page-margin-top": String(pdfOptions.margin.top), "--pdf-page-margin-bottom": String(pdfOptions.margin.bottom), "--pdf-default-font-size": String(pdfOptions.fontSize), "--pdf-mono-font-size": String(pdfOptions.fontSize), "--paper-size": String(pdfOptions.paperSize), "--pdf-page-numbers": Boolean(pdfOptions.pageNumbers), "--pdf-sans-family": String(pdfOptions.fontFamily), "--pdf-header-template": headerTpl, "--pdf-footer-template": footerTpl, "--embed-all-fonts": Boolean(pdfOptions.embedFonts) })); }); }); } exports.default = getConvertOptions;