summaryrefslogtreecommitdiffstats
path: root/lib/generate/ebook/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/generate/ebook/index.js')
-rw-r--r--lib/generate/ebook/index.js35
1 files changed, 21 insertions, 14 deletions
diff --git a/lib/generate/ebook/index.js b/lib/generate/ebook/index.js
index 0c5a664..cec0909 100644
--- a/lib/generate/ebook/index.js
+++ b/lib/generate/ebook/index.js
@@ -15,11 +15,6 @@ var stringUtils = require("../../utils/string");
*/
var Generator = function() {
BaseGenerator.apply(this, arguments);
-
- // Options for eBook generation
- this.options = _.defaults(this.options, {
- extension: "epub"
- });
};
util.inherits(Generator, BaseGenerator);
@@ -29,7 +24,7 @@ Generator.prototype.finish = function() {
return BaseGenerator.prototype.finish.apply(this)
.then(function() {
var d = Q.defer();
- var format = that.options.extension || path.extname(that.options.output);
+ var format = that.options.extension || path.extname(that.options.output).replace("\.", "") || "pdf";
if (!that.options.cover && fs.existsSync(path.join(that.options.output, "cover.jpg"))) {
that.options.cover = path.join(that.options.output, "cover.jpg");
@@ -46,21 +41,33 @@ Generator.prototype.finish = function() {
};
if (format == "pdf") {
+ var pdfOptions = _.defaults(that.options.pdf || {}, {
+ "fontSize": 12,
+ "toc": true,
+ "paperSize": "a4",
+ "margin": {
+ "right": 62,
+ "left": 62,
+ "top": 36,
+ "bottom": 36
+ }
+ });
+
_.extend(_options, {
- "--margin-left": "62",
- "--margin-right": "62",
- "--margin-top": "36",
- "--margin-bottom": "36",
- "--pdf-add-toc": true,
- "--pdf-default-font-size": "12",
- "--paper-size": "a4",
+ "--margin-left": String(pdfOptions.margin.left),
+ "--margin-right": String(pdfOptions.margin.right),
+ "--margin-top": String(pdfOptions.margin.top),
+ "--margin-bottom": String(pdfOptions.margin.bottom),
+ "--pdf-add-toc": Boolean(pdfOptions.toc),
+ "--pdf-default-font-size": String(pdfOptions.fontSize),
+ "--paper-size": String(pdfOptions.paperSize),
});
}
var command = [
"ebook-convert",
path.join(that.options.output, "index.html"),
- path.join(that.options.output, "index."+that.options.extension),
+ path.join(that.options.output, "index."+format),
stringUtils.optionsToShellArgs(_options)
].join(" ");