summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/book.js13
-rw-r--r--lib/configuration.js8
2 files changed, 19 insertions, 2 deletions
diff --git a/lib/book.js b/lib/book.js
index 5335896..6c8fdbb 100644
--- a/lib/book.js
+++ b/lib/book.js
@@ -33,6 +33,9 @@ var Book = function(root, options, parent) {
// Langs
this.langs = [];
+
+ // Sub-books
+ this.books = [];
};
// Initialize and parse the book: config, summary, glossary
@@ -73,6 +76,16 @@ Book.prototype.init = function() {
if (multilingal) return;
return that.parseGlossary();
})
+
+ .then(function() {
+ // Init sub-books
+ return _.reduce(that.books, function(prev, book) {
+ return prev.then(function() {
+ return book.init();
+ });
+ }, Q());
+ })
+
.thenResolve(this);
};
diff --git a/lib/configuration.js b/lib/configuration.js
index 0b3073f..daf1b3c 100644
--- a/lib/configuration.js
+++ b/lib/configuration.js
@@ -6,7 +6,8 @@ var fs = require("./utils/fs");
var Configuration = function(book, options) {
this.book = book;
- this.options = _.extend({}, Configuration.DEFAULT, options || {});
+ this.options = _.cloneDeep(Configuration.DEFAULT);
+ this.options = _.merge(this.options, options || {});
};
// Read and parse the configuration
@@ -25,6 +26,9 @@ Configuration.prototype.load = function() {
catch(err) {
return Q();
}
+ })
+ .then(function() {
+ that.options.output = that.options.output || path.join(that.book.root, "_book");
});
};
@@ -48,7 +52,7 @@ Configuration.DEFAULT = {
// Structure
"structure": {
- "langs": "README.md",
+ "langs": "LANGS.md",
"readme": "README.md",
"glossary": "GLOSSARY.md",
"summary": "SUMMARY.md"