diff options
Diffstat (limited to 'packages/gitbook/lib/output/json/onFinish.js')
-rw-r--r-- | packages/gitbook/lib/output/json/onFinish.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/gitbook/lib/output/json/onFinish.js b/packages/gitbook/lib/output/json/onFinish.js new file mode 100644 index 0000000..d41d778 --- /dev/null +++ b/packages/gitbook/lib/output/json/onFinish.js @@ -0,0 +1,47 @@ +var path = require('path'); + +var Promise = require('../../utils/promise'); +var fs = require('../../utils/fs'); +var JSONUtils = require('../../json'); + +/** + Finish the generation + + @param {Output} + @return {Output} +*/ +function onFinish(output) { + var book = output.getBook(); + var outputRoot = output.getRoot(); + + if (!book.isMultilingual()) { + return Promise(output); + } + + // Get main language + var languages = book.getLanguages(); + var mainLanguage = languages.getDefaultLanguage(); + + // Read the main JSON + return fs.readFile(path.resolve(outputRoot, mainLanguage.getID(), 'README.json'), 'utf8') + + // Extend the JSON + .then(function(content) { + var json = JSON.parse(content); + + json.languages = JSONUtils.encodeLanguages(languages); + + return json; + }) + + .then(function(json) { + return fs.writeFile( + path.resolve(outputRoot, 'README.json'), + JSON.stringify(json, null, 4) + ); + }) + + .thenResolve(output); +} + +module.exports = onFinish; |