fix
This commit is contained in:
9
book/node_modules/honkit/lib/output/ebook/getConvertOptions.d.ts
generated
vendored
Normal file
9
book/node_modules/honkit/lib/output/ebook/getConvertOptions.d.ts
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
Generate options for ebook-convert
|
||||
|
||||
@param {Output}
|
||||
@return {Promise<Object>}
|
||||
*/
|
||||
declare function getConvertOptions(output: any): any;
|
||||
export default getConvertOptions;
|
||||
//# sourceMappingURL=getConvertOptions.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/getConvertOptions.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/getConvertOptions.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"getConvertOptions.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/getConvertOptions.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH,iBAAS,iBAAiB,CAAC,MAAM,KAAA,OA8DhC;AAED,eAAe,iBAAiB,CAAC"}
|
69
book/node_modules/honkit/lib/output/ebook/getConvertOptions.js
generated
vendored
Normal file
69
book/node_modules/honkit/lib/output/ebook/getConvertOptions.js
generated
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
"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;
|
9
book/node_modules/honkit/lib/output/ebook/getCoverPath.d.ts
generated
vendored
Normal file
9
book/node_modules/honkit/lib/output/ebook/getCoverPath.d.ts
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
Resolve path to cover file to use
|
||||
|
||||
@param {Output}
|
||||
@return {string}
|
||||
*/
|
||||
declare function getCoverPath(output: any): string;
|
||||
export default getCoverPath;
|
||||
//# sourceMappingURL=getCoverPath.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/getCoverPath.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/getCoverPath.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"getCoverPath.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/getCoverPath.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,iBAAS,YAAY,CAAC,MAAM,KAAA,UAkB3B;AAED,eAAe,YAAY,CAAC"}
|
30
book/node_modules/honkit/lib/output/ebook/getCoverPath.js
generated
vendored
Normal file
30
book/node_modules/honkit/lib/output/ebook/getCoverPath.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const fs_1 = __importDefault(require("../../utils/fs"));
|
||||
/**
|
||||
Resolve path to cover file to use
|
||||
|
||||
@param {Output}
|
||||
@return {string}
|
||||
*/
|
||||
function getCoverPath(output) {
|
||||
const outputRoot = output.getRoot();
|
||||
const book = output.getBook();
|
||||
const config = book.getConfig();
|
||||
const coverName = config.getValue("cover", "cover.jpg");
|
||||
// Resolve to absolute
|
||||
let cover = fs_1.default.pickFile(outputRoot, coverName);
|
||||
if (cover) {
|
||||
return cover;
|
||||
}
|
||||
// Multilingual? try parent folder
|
||||
if (book.isLanguageBook()) {
|
||||
cover = fs_1.default.pickFile(path_1.default.join(outputRoot, ".."), coverName);
|
||||
}
|
||||
return cover;
|
||||
}
|
||||
exports.default = getCoverPath;
|
10
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.d.ts
generated
vendored
Normal file
10
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.d.ts
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
/**
|
||||
Generate PDF header/footer templates
|
||||
|
||||
@param {Output} output
|
||||
@param {string} type
|
||||
@return {string}
|
||||
*/
|
||||
declare function getPDFTemplate(output: any, type: any): any;
|
||||
export default getPDFTemplate;
|
||||
//# sourceMappingURL=getPDFTemplate.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"getPDFTemplate.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/getPDFTemplate.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH,iBAAS,cAAc,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,OA2BnC;AAED,eAAe,cAAc,CAAC"}
|
42
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.js
generated
vendored
Normal file
42
book/node_modules/honkit/lib/output/ebook/getPDFTemplate.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const juice_1 = __importDefault(require("juice"));
|
||||
const website_1 = __importDefault(require("../website"));
|
||||
const json_1 = __importDefault(require("../../json"));
|
||||
const templating_1 = __importDefault(require("../../templating"));
|
||||
const promise_1 = __importDefault(require("../../utils/promise"));
|
||||
/**
|
||||
Generate PDF header/footer templates
|
||||
|
||||
@param {Output} output
|
||||
@param {string} type
|
||||
@return {string}
|
||||
*/
|
||||
function getPDFTemplate(output, type) {
|
||||
const filePath = `pdf_${type}.html`;
|
||||
const outputRoot = output.getRoot();
|
||||
const engine = website_1.default.createTemplateEngine(output, filePath);
|
||||
// Generate context
|
||||
const context = json_1.default.encodeOutput(output);
|
||||
// @ts-expect-error ts-migrate(2339) FIXME: Property 'page' does not exist on type '{ summary:... Remove this comment to see the full error message
|
||||
context.page = {
|
||||
num: "_PAGENUM_",
|
||||
title: "_SECTION_"
|
||||
};
|
||||
// Render the theme
|
||||
return (templating_1.default.renderFile(engine, `ebook/${filePath}`, context)
|
||||
// Inline css and assets
|
||||
.then((tplOut) => {
|
||||
return promise_1.default.nfcall(juice_1.default.juiceResources, tplOut.getContent(), {
|
||||
webResources: {
|
||||
relativeTo: outputRoot
|
||||
}
|
||||
});
|
||||
})
|
||||
.then((tplOut) => tplOut.replace(/\n/g, " ")) // PDF templates need to be on one line for inclusion in spawned command
|
||||
);
|
||||
}
|
||||
exports.default = getPDFTemplate;
|
3
book/node_modules/honkit/lib/output/ebook/index.d.ts
generated
vendored
Normal file
3
book/node_modules/honkit/lib/output/ebook/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
declare const _default: any;
|
||||
export default _default;
|
||||
//# sourceMappingURL=index.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/index.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/index.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/index.ts"],"names":[],"mappings":";AAMA,wBAKG"}
|
16
book/node_modules/honkit/lib/output/ebook/index.js
generated
vendored
Normal file
16
book/node_modules/honkit/lib/output/ebook/index.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"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 website_1 = __importDefault(require("../website"));
|
||||
const options_1 = __importDefault(require("./options"));
|
||||
const onPage_1 = __importDefault(require("./onPage"));
|
||||
const onFinish_1 = __importDefault(require("./onFinish"));
|
||||
exports.default = (0, extend_1.default)({}, website_1.default, {
|
||||
name: "ebook",
|
||||
Options: options_1.default,
|
||||
onPage: onPage_1.default,
|
||||
onFinish: onFinish_1.default
|
||||
});
|
9
book/node_modules/honkit/lib/output/ebook/onFinish.d.ts
generated
vendored
Normal file
9
book/node_modules/honkit/lib/output/ebook/onFinish.d.ts
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
Finish the generation, generates the SUMMARY.html
|
||||
|
||||
@param {Output}
|
||||
@return {Output}
|
||||
*/
|
||||
declare function onFinish(output: any): any;
|
||||
export default onFinish;
|
||||
//# sourceMappingURL=onFinish.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/onFinish.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/onFinish.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"onFinish.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/onFinish.ts"],"names":[],"mappings":"AAqFA;;;;;GAKG;AACH,iBAAS,QAAQ,CAAC,MAAM,KAAA,OAEvB;AAED,eAAe,QAAQ,CAAC"}
|
84
book/node_modules/honkit/lib/output/ebook/onFinish.js
generated
vendored
Normal file
84
book/node_modules/honkit/lib/output/ebook/onFinish.js
generated
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const website_1 = __importDefault(require("../website"));
|
||||
const json_1 = __importDefault(require("../../json"));
|
||||
const templating_1 = __importDefault(require("../../templating"));
|
||||
const promise_1 = __importDefault(require("../../utils/promise"));
|
||||
const error_1 = __importDefault(require("../../utils/error"));
|
||||
const command_1 = __importDefault(require("../../utils/command"));
|
||||
const writeFile_1 = __importDefault(require("../helper/writeFile"));
|
||||
const getConvertOptions_1 = __importDefault(require("./getConvertOptions"));
|
||||
const SUMMARY_FILE = "SUMMARY.html";
|
||||
/**
|
||||
Write the SUMMARY.html
|
||||
|
||||
@param {Output}
|
||||
@return {Output}
|
||||
*/
|
||||
function writeSummary(output) {
|
||||
const options = output.getOptions();
|
||||
const prefix = options.get("prefix");
|
||||
const filePath = SUMMARY_FILE;
|
||||
const engine = website_1.default.createTemplateEngine(output, filePath);
|
||||
const context = json_1.default.encodeOutput(output);
|
||||
// Render the theme
|
||||
return (templating_1.default.renderFile(engine, `${prefix}/summary.html`, context)
|
||||
// Write it to the disk
|
||||
.then((tplOut) => {
|
||||
return (0, writeFile_1.default)(output, filePath, tplOut.getContent());
|
||||
}));
|
||||
}
|
||||
/**
|
||||
Generate the ebook file as "index.pdf"
|
||||
|
||||
@param {Output}
|
||||
@return {Output}
|
||||
*/
|
||||
function runEbookConvert(output) {
|
||||
const logger = output.getLogger();
|
||||
const options = output.getOptions();
|
||||
const format = options.get("format");
|
||||
const outputFolder = output.getRoot();
|
||||
if (!format) {
|
||||
return (0, promise_1.default)(output);
|
||||
}
|
||||
return (0, getConvertOptions_1.default)(output)
|
||||
.then((options) => {
|
||||
const cmd = [
|
||||
"ebook-convert",
|
||||
path_1.default.resolve(outputFolder, SUMMARY_FILE),
|
||||
path_1.default.resolve(outputFolder, `index.${format}`),
|
||||
command_1.default.optionsToShellArgs(options)
|
||||
].join(" ");
|
||||
return (command_1.default
|
||||
// @ts-expect-error ts-migrate(2554) FIXME: Expected 2 arguments, but got 1.
|
||||
.exec(cmd)
|
||||
.progress((data) => {
|
||||
logger.debug(data);
|
||||
})
|
||||
.fail((err) => {
|
||||
if (err.code == 127) {
|
||||
throw error_1.default.RequireInstallError({
|
||||
cmd: "ebook-convert",
|
||||
install: "Install it from Calibre: https://calibre-ebook.com"
|
||||
});
|
||||
}
|
||||
throw error_1.default.EbookError(err);
|
||||
}));
|
||||
})
|
||||
.thenResolve(output);
|
||||
}
|
||||
/**
|
||||
Finish the generation, generates the SUMMARY.html
|
||||
|
||||
@param {Output}
|
||||
@return {Output}
|
||||
*/
|
||||
function onFinish(output) {
|
||||
return writeSummary(output).then(runEbookConvert);
|
||||
}
|
||||
exports.default = onFinish;
|
9
book/node_modules/honkit/lib/output/ebook/onPage.d.ts
generated
vendored
Normal file
9
book/node_modules/honkit/lib/output/ebook/onPage.d.ts
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
Write a page for ebook output
|
||||
|
||||
@param {Output} output
|
||||
@param {Output}
|
||||
*/
|
||||
declare function onPage(output: any, page: any): any;
|
||||
export default onPage;
|
||||
//# sourceMappingURL=onPage.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/onPage.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/onPage.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"onPage.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/onPage.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,iBAAS,MAAM,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,OAY3B;AAED,eAAe,MAAM,CAAC"}
|
23
book/node_modules/honkit/lib/output/ebook/onPage.js
generated
vendored
Normal file
23
book/node_modules/honkit/lib/output/ebook/onPage.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const website_1 = __importDefault(require("../website"));
|
||||
const modifiers_1 = __importDefault(require("../modifiers"));
|
||||
/**
|
||||
Write a page for ebook output
|
||||
|
||||
@param {Output} output
|
||||
@param {Output}
|
||||
*/
|
||||
function onPage(output, page) {
|
||||
const options = output.getOptions();
|
||||
// Inline assets
|
||||
return (modifiers_1.default.modifyHTML(page, [modifiers_1.default.inlineAssets(options.get("root"), page.getFile().getPath())])
|
||||
// Write page using website generator
|
||||
.then((resultPage) => {
|
||||
return website_1.default.onPage(output, resultPage);
|
||||
}));
|
||||
}
|
||||
exports.default = onPage;
|
4
book/node_modules/honkit/lib/output/ebook/options.d.ts
generated
vendored
Normal file
4
book/node_modules/honkit/lib/output/ebook/options.d.ts
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import Immutable from "immutable";
|
||||
declare const Options: Immutable.Record.Class;
|
||||
export default Options;
|
||||
//# sourceMappingURL=options.d.ts.map
|
1
book/node_modules/honkit/lib/output/ebook/options.d.ts.map
generated
vendored
Normal file
1
book/node_modules/honkit/lib/output/ebook/options.d.ts.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/output/ebook/options.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,QAAA,MAAM,OAAO,wBAYX,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
17
book/node_modules/honkit/lib/output/ebook/options.js
generated
vendored
Normal file
17
book/node_modules/honkit/lib/output/ebook/options.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const immutable_1 = __importDefault(require("immutable"));
|
||||
const Options = immutable_1.default.Record({
|
||||
// Root folder for the output
|
||||
root: String(),
|
||||
// Prefix for generation
|
||||
prefix: String("ebook"),
|
||||
// Format to generate using ebook-convert
|
||||
format: String(),
|
||||
// Force use of absolute urls ("index.html" instead of "/")
|
||||
directoryIndex: Boolean(false)
|
||||
});
|
||||
exports.default = Options;
|
Reference in New Issue
Block a user