mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 23:55:20 +00:00
69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
var util = require("util");
|
|
var path = require("path");
|
|
var Q = require("q");
|
|
var _ = require("lodash");
|
|
|
|
var fs = require("../utils/fs");
|
|
var BaseGenerator = require("../generator");
|
|
|
|
|
|
var Generator = function() {
|
|
BaseGenerator.apply(this, arguments);
|
|
};
|
|
util.inherits(Generator, BaseGenerator);
|
|
|
|
// Ignore some methods
|
|
Generator.prototype.transferFile = function(input) { };
|
|
Generator.prototype.finish = function() { };
|
|
|
|
// Convert an input file
|
|
Generator.prototype.writeParsedFile = function(page, input) {
|
|
var that = this;
|
|
var json = {
|
|
progress: page.progress,
|
|
sections: page.sections
|
|
};
|
|
|
|
var output = that.changeExtension(input, ".json");
|
|
output = path.join(that.options.output, output);
|
|
|
|
return fs.writeFile(
|
|
output,
|
|
JSON.stringify(json, null, 4)
|
|
);
|
|
};
|
|
|
|
// Generate languages index
|
|
// Contains the first languages readme and langs infos
|
|
Generator.prototype.langsIndex = function(langs) {
|
|
var that = this;
|
|
|
|
if (langs.length == 0) return Q.reject("Need at least one language");
|
|
|
|
var mainLang = _.first(langs).lang;
|
|
var readme = that.changeExtension(that.book.readmeFile, ".json");
|
|
|
|
return Q()
|
|
.then(function() {
|
|
// Read readme from main language
|
|
return fs.readFile(
|
|
path.join(that.options.output, mainLang, readme)
|
|
);
|
|
})
|
|
.then(function(content) {
|
|
// Extend it with infos about the languages
|
|
var json = JSON.parse(content);
|
|
_.extend(json, {
|
|
langs: langs
|
|
});
|
|
|
|
// Write it as README.json
|
|
return fs.writeFile(
|
|
path.join(that.options.output, "README.json"),
|
|
JSON.stringify(json, null, 4)
|
|
);
|
|
});
|
|
};
|
|
|
|
module.exports = Generator;
|