diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/book.js | 13 | ||||
-rw-r--r-- | lib/configuration.js | 8 |
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" |