mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-21 01:53:26 +00:00
Complete ebook command to output one file
This commit is contained in:
@@ -4,6 +4,7 @@ var path = require('path');
|
||||
var Book = require('../book');
|
||||
var NodeFS = require('../fs/node');
|
||||
var Logger = require('../utils/logger');
|
||||
var fs = require('../utils/fs');
|
||||
var JSONOutput = require('../output/json');
|
||||
var WebsiteOutput = require('../output/website');
|
||||
var EBookOutput = require('../output/ebook');
|
||||
@@ -57,9 +58,45 @@ function outputCmd(fn) {
|
||||
});
|
||||
}
|
||||
|
||||
// Command to generate an ebook
|
||||
function ebookCmd(format) {
|
||||
return {
|
||||
name: format + ' [book] [output] [file]',
|
||||
description: 'generates ebook '+format,
|
||||
options: [
|
||||
LOG_OPTION
|
||||
],
|
||||
exec: bookCmd(function(book, args, kwargs) {
|
||||
return fs.tmpDir()
|
||||
.then(function(dir) {
|
||||
var outputFile = path.resolve(process.cwd(), args[1] || 'book.' + format);
|
||||
var output = new EBookOutput(book, {
|
||||
format: format
|
||||
});
|
||||
|
||||
return output.book.parse()
|
||||
.then(function() {
|
||||
// Set output folder
|
||||
output.book.config.set('output', dir);
|
||||
return output.generate();
|
||||
})
|
||||
|
||||
// Copy the ebook file
|
||||
.then(function() {
|
||||
return fs.copy(
|
||||
path.resolve(dir, 'index.' + format),
|
||||
outputFile
|
||||
);
|
||||
});
|
||||
});
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
bookCmd: bookCmd,
|
||||
outputCmd: outputCmd,
|
||||
ebookCmd: ebookCmd,
|
||||
|
||||
options: {
|
||||
log: LOG_OPTION,
|
||||
|
||||
+3
-30
@@ -7,38 +7,11 @@ var Promise = require('../utils/promise');
|
||||
var PluginsManager = require('../plugins');
|
||||
var Book = require('../book');
|
||||
var NodeFS = require('../fs/node');
|
||||
var EBookOutput = require('../output/ebook');
|
||||
|
||||
var helper = require('./helper');
|
||||
var Server = require('./server');
|
||||
var watch = require('./watch');
|
||||
|
||||
function ebookCommand(format) {
|
||||
return {
|
||||
name: format + ' [book] [output]',
|
||||
description: 'generates ebook '+format,
|
||||
options: [
|
||||
helper.options.log
|
||||
],
|
||||
exec: helper.bookCmd(function(book, args, kwargs) {
|
||||
var output = new EBookOutput(book, {
|
||||
format: format
|
||||
});
|
||||
|
||||
return output.book.parse()
|
||||
.then(function() {
|
||||
// Set output folder
|
||||
if (args[0]) {
|
||||
output.book.config.set('output', path.resolve(process.cwd(), args[0]));
|
||||
}
|
||||
|
||||
return output.generate();
|
||||
});
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
commands: [
|
||||
|
||||
@@ -98,9 +71,9 @@ module.exports = {
|
||||
})
|
||||
},
|
||||
|
||||
ebookCommand('pdf'),
|
||||
ebookCommand('epub'),
|
||||
ebookCommand('mobi'),
|
||||
helper.ebookCmd('pdf'),
|
||||
helper.ebookCmd('epub'),
|
||||
helper.ebookCmd('mobi'),
|
||||
|
||||
{
|
||||
name: 'serve [book]',
|
||||
|
||||
Reference in New Issue
Block a user