summaryrefslogtreecommitdiffstats
path: root/lib/output
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output')
-rw-r--r--lib/output/__tests__/json.js17
-rw-r--r--lib/output/json/index.js3
-rw-r--r--lib/output/json/onFinish.js25
3 files changed, 39 insertions, 6 deletions
diff --git a/lib/output/__tests__/json.js b/lib/output/__tests__/json.js
index 46ab42f..9897813 100644
--- a/lib/output/__tests__/json.js
+++ b/lib/output/__tests__/json.js
@@ -25,5 +25,22 @@ describe('JSONGenerator', function() {
expect(folder).toHaveFile('test/page.json');
});
});
+
+ it('should generate a multilingual book', function() {
+ return generateMock(JSONGenerator, {
+ 'LANGS.md': '# Languages\n\n* [en](en)\n* [fr](fr)',
+ 'en': {
+ 'README.md': 'Hello'
+ },
+ 'fr': {
+ 'README.md': 'Bonjour'
+ }
+ })
+ .then(function(folder) {
+ expect(folder).toHaveFile('en/README.json');
+ expect(folder).toHaveFile('fr/README.json');
+ expect(folder).toHaveFile('README.json');
+ });
+ });
});
diff --git a/lib/output/json/index.js b/lib/output/json/index.js
index e24c127..361da06 100644
--- a/lib/output/json/index.js
+++ b/lib/output/json/index.js
@@ -2,5 +2,6 @@
module.exports = {
name: 'json',
Options: require('./options'),
- onPage: require('./onPage')
+ onPage: require('./onPage'),
+ onFinish: require('./onFinish')
};
diff --git a/lib/output/json/onFinish.js b/lib/output/json/onFinish.js
index ff336a2..d41d778 100644
--- a/lib/output/json/onFinish.js
+++ b/lib/output/json/onFinish.js
@@ -2,6 +2,7 @@ var path = require('path');
var Promise = require('../../utils/promise');
var fs = require('../../utils/fs');
+var JSONUtils = require('../../json');
/**
Finish the generation
@@ -21,11 +22,25 @@ function onFinish(output) {
var languages = book.getLanguages();
var mainLanguage = languages.getDefaultLanguage();
- // Copy README.json from it
- return fs.copy(
- path.resolve(outputRoot, mainLanguage.getID(), 'README.json'),
- path.resolve(outputRoot, 'README.json')
- )
+ // 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);
}