diff options
-rw-r--r-- | lib/book.js | 18 | ||||
-rw-r--r-- | test/books/init/.gitignore | 3 | ||||
-rw-r--r-- | test/books/init/SUMMARY.md | 6 | ||||
-rw-r--r-- | test/init.js | 23 |
4 files changed, 41 insertions, 9 deletions
diff --git a/lib/book.js b/lib/book.js index ac0fc82..2e0ab58 100644 --- a/lib/book.js +++ b/lib/book.js @@ -789,20 +789,19 @@ Book.prototype.normError = function(err, opts, defs) { }; // Init and return a book -Book.init = function(root) { - var book = new Book(root); +Book.init = function(root, opts) { + var book = new Book(root, opts); var extensionToUse = ".md"; var chaptersPaths = function(chapters) { return _.reduce(chapters || [], function(accu, chapter) { - if (!chapter.path) return accu; + var o = { + title: chapter.title + }; + if (chapter.path) o.path = chapter.path; + return accu.concat( - _.filter([ - { - title: chapter.title, - path: chapter.path - } - ].concat(chaptersPaths(chapter.articles))) + [o].concat(chaptersPaths(chapter.articles)) ); }, []); }; @@ -839,6 +838,7 @@ Book.init = function(root) { .then(function(chapters) { // Create files that don't exist return Q.all(_.map(chapters, function(chapter) { + if (!chapter.path) return Q(); var absolutePath = path.resolve(book.root, chapter.path); return fs.exists(absolutePath) diff --git a/test/books/init/.gitignore b/test/books/init/.gitignore new file mode 100644 index 0000000..8a88b2a --- /dev/null +++ b/test/books/init/.gitignore @@ -0,0 +1,3 @@ +* +!SUMMARY.md +!.gitignore diff --git a/test/books/init/SUMMARY.md b/test/books/init/SUMMARY.md new file mode 100644 index 0000000..1e63aed --- /dev/null +++ b/test/books/init/SUMMARY.md @@ -0,0 +1,6 @@ +# Summary + +* [Hello](hello.md) +* [Hello 2](hello2.md) +* Hello 3 + * [Hello 4](hello3/hello4.md) diff --git a/test/init.js b/test/init.js new file mode 100644 index 0000000..3ba701f --- /dev/null +++ b/test/init.js @@ -0,0 +1,23 @@ +var fs = require('fs'); +var path = require('path'); +var should = require('should'); + +var Book = require('../').Book; +var LOG_LEVELS = require('../').LOG_LEVELS; + +describe('Init Books', function () { + var initRoot; + + before(function() { + initRoot = path.resolve(__dirname, "books/init"); + return Book.init(initRoot, { + logLevel: LOG_LEVELS.DISABLED, + }); + }); + + it('should create all chapters', function() { + should(fs.existsSync(path.resolve(initRoot, "hello.md"))).be.ok; + should(fs.existsSync(path.resolve(initRoot, "hello2.md"))).be.ok; + should(fs.existsSync(path.resolve(initRoot, "hello3/hello4.md"))).be.ok; + }); +}); |