summaryrefslogtreecommitdiffstats
path: root/lib/generators/json.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-19 17:25:16 +0100
committerSamy Pessé <samypesse@gmail.com>2015-01-19 17:25:16 +0100
commitbe4d2679a4daf885a470b5f89e8e6488b0c7a820 (patch)
tree4fb8929a39254a275ed75d7bc04786fa7338cc12 /lib/generators/json.js
parent70189a5ee2da4ae2237178e6e6630b3355857f56 (diff)
downloadgitbook-be4d2679a4daf885a470b5f89e8e6488b0c7a820.zip
gitbook-be4d2679a4daf885a470b5f89e8e6488b0c7a820.tar.gz
gitbook-be4d2679a4daf885a470b5f89e8e6488b0c7a820.tar.bz2
Add base test for generation
Diffstat (limited to 'lib/generators/json.js')
-rw-r--r--lib/generators/json.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/lib/generators/json.js b/lib/generators/json.js
new file mode 100644
index 0000000..4632a17
--- /dev/null
+++ b/lib/generators/json.js
@@ -0,0 +1,76 @@
+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);
+
+Generator.prototype.transferFile = function(input) {
+ // ignore
+};
+
+Generator.prototype.convertFile = function(content, input) {
+ var that = this;
+ var json = {
+ progress: parse.progress(this.options.navigation, input)
+ };
+
+ return Q()
+ .then(function() {
+ return parse.page(content, {
+ dir: path.dirname(input) || '/'
+ });
+ })
+ .then(function(parsed) {
+ json.lexed = parsed.lexed;
+ json.sections = parsed.sections;
+ })
+ .then(function() {
+ return fs.writeFile(
+ path.join(that.options.output, input.replace(".md", ".json")),
+ 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.list.length == 0) return Q.reject("Need at least one language");
+
+ var mainLang = _.first(langs.list).lang;
+ console.log("Main language is", mainLang);
+
+ return Q()
+ .then(function() {
+ return fs.readFile(
+ path.join(that.options.output, mainLang, "README.json")
+ );
+ })
+ .then(function(content) {
+ var json = JSON.parse(content);
+ _.extend(json, {
+ langs: langs.list
+ });
+
+ return fs.writeFile(
+ path.join(that.options.output, "README.json"),
+ JSON.stringify(json, null, 4)
+ );
+ });
+};
+
+Generator.prototype.finish = function() {
+ // ignore
+};
+
+module.exports = Generator;