diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-09-28 00:22:06 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 15:00:48 +0100 |
commit | b205781abb1f71dc5627b21cfe93e8f4e049191f (patch) | |
tree | fec0591c342ff2a78c88ee9b9e7be863c20fe730 /packages/gitbook-markdown/lib/summary.js | |
parent | 7caa5624e73552be147470fa9b379da55b00b376 (diff) | |
download | gitbook-b205781abb1f71dc5627b21cfe93e8f4e049191f.zip gitbook-b205781abb1f71dc5627b21cfe93e8f4e049191f.tar.gz gitbook-b205781abb1f71dc5627b21cfe93e8f4e049191f.tar.bz2 |
Ignore empty entries in summary
Diffstat (limited to 'packages/gitbook-markdown/lib/summary.js')
-rw-r--r-- | packages/gitbook-markdown/lib/summary.js | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/packages/gitbook-markdown/lib/summary.js b/packages/gitbook-markdown/lib/summary.js index 58fa910..2cb31be 100644 --- a/packages/gitbook-markdown/lib/summary.js +++ b/packages/gitbook-markdown/lib/summary.js @@ -101,10 +101,16 @@ function parseTitle(src) { } function parseChapter(nodes) { - return _.extend(parseTitle(_.first(nodes).text), { - articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), function(nodes, i) { - return parseChapter(nodes); - }) + var node = _.first(nodes); + if (!node) return null; + + return _.extend(parseTitle(node.text), { + articles: _.chain(listSplit(filterList(nodes), 'list_item_start', 'list_item_end')) + .map(function(nodes, i) { + return parseChapter(nodes); + }) + .compact() + .value() }); } @@ -120,16 +126,21 @@ function listGroups(src) { function parseSummary(src) { // Split out chapter sections - var chapters = listGroups(src) - .map(parseChapter); + var chapters = _.chain(listGroups(src)) + .map(parseChapter) + .compact() + .value(); return { chapters: chapters }; } -function parseEntries (src) { - return listGroups(src).map(parseChapter); +function parseEntries(src) { + return _.chain(listGroups(src)) + .map(parseChapter) + .compact() + .value(); } |