mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-18 00:25:07 +00:00
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
var util = require('util');
|
|
var Generator = require('./base');
|
|
var gitbook = require('../gitbook');
|
|
|
|
function JSONGenerator() {
|
|
Generator.apply(this, arguments);
|
|
}
|
|
util.inherits(JSONGenerator, Generator);
|
|
|
|
// Write a page (parsable file)
|
|
JSONGenerator.prototype.writePage = function(page) {
|
|
var that = this;
|
|
|
|
// Parse the page
|
|
return page.parse()
|
|
|
|
// Write as json
|
|
.then(function() {
|
|
var json = {
|
|
gitbook: {
|
|
version: gitbook.version
|
|
},
|
|
path: page.path,
|
|
sections: page.content.sections
|
|
};
|
|
|
|
return that.output.writeFile(
|
|
page.withExtension('.json'),
|
|
JSON.stringify(json, null, 4)
|
|
);
|
|
});
|
|
};
|
|
|
|
// At the end of generation, generate README.json for multilingual books
|
|
JSONGenerator.prototype.finish = function() {
|
|
if (!this.book.isMultilingual()) return;
|
|
|
|
// Copy README.json from main book
|
|
var mainLanguage = this.book.langs.getDefault().id;
|
|
return this.output.copyFile(
|
|
this.output.resolve(mainLanguage, 'README.json'),
|
|
'README.json'
|
|
);
|
|
};
|
|
|
|
|
|
module.exports = JSONGenerator;
|