summaryrefslogtreecommitdiffstats
path: root/lib/api
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-27 09:59:09 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-27 09:59:09 +0200
commitf4de7748f596a060e9a59df0447315b59d7c47de (patch)
tree427e37658a3ccf61ed3a5df63bf263b27fe7530e /lib/api
parent93c26a839bc8102cf8d12a24ff69381db5a5c864 (diff)
downloadgitbook-f4de7748f596a060e9a59df0447315b59d7c47de.zip
gitbook-f4de7748f596a060e9a59df0447315b59d7c47de.tar.gz
gitbook-f4de7748f596a060e9a59df0447315b59d7c47de.tar.bz2
Complete generator name in plugins API
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/encodeConfig.js6
-rw-r--r--lib/api/encodeGlobal.js44
2 files changed, 43 insertions, 7 deletions
diff --git a/lib/api/encodeConfig.js b/lib/api/encodeConfig.js
index d83f81a..2a05528 100644
--- a/lib/api/encodeConfig.js
+++ b/lib/api/encodeConfig.js
@@ -24,6 +24,12 @@ function encodeConfig(output, config) {
deprecate.field(output, 'config.options', result, 'options',
result.values, '"config.options" property is deprecated, use "config.get(key)" instead');
+ deprecate.field(output, 'config.options.generator', result.values, 'generator',
+ output.getGenerator(), '"options.generator" property is deprecated, use "output.name" instead');
+
+ deprecate.field(output, 'config.options.generator', result.values, 'output',
+ output.getRoot(), '"options.output" property is deprecated, use "output.root()" instead');
+
return result;
}
diff --git a/lib/api/encodeGlobal.js b/lib/api/encodeGlobal.js
index 0e0f82c..915350c 100644
--- a/lib/api/encodeGlobal.js
+++ b/lib/api/encodeGlobal.js
@@ -1,6 +1,6 @@
-var path = require('path');
-
var fs = require('../utils/fs');
+var Promise = require('../utils/promise');
+var PathUtils = require('../utils/promise');
var deprecate = require('./deprecate');
var encodeConfig = require('./encodeConfig');
@@ -15,8 +15,7 @@ var encodeConfig = require('./encodeConfig');
function encodeGlobal(output) {
var book = output.getBook();
var logger = output.getLogger();
-
- var outputFolder = output.getOptions().get('root');
+ var outputFolder = output.getRoot();
var result = {
log: logger,
@@ -24,15 +23,46 @@ function encodeGlobal(output) {
};
result.output = {
- name: 'website',
+ /**
+ Name of the generator being used
+ {String}
+ */
+ name: output.getGenerator(),
+
+ /**
+ Return absolute path to the root folder of output
+ @return {String}
+ */
+ root: function() {
+ return outputFolder;
+ },
+ /**
+ Convert a filepath into an url
+ @return {String}
+ */
toURL: function(s) {
return s;
},
+ /**
+ Write a file to the output folder,
+ It creates the required folder
+
+ @param {String} fileName
+ @param {Buffer} content
+ @return {Promise}
+ */
writeFile: function(fileName, content) {
- var filePath = path.join(outputFolder, fileName);
- return fs.writeFile(filePath, content);
+ return Promise()
+ .then(function() {
+ var filePath = PathUtils.resolveInRoot(outputFolder, fileName);
+
+ return fs.ensure(filePath)
+ .then(function() {
+ return fs.writeFile(filePath, content);
+ });
+ });
}
};