diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-02-03 14:23:50 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 15:00:33 +0100 |
commit | fc675de6aad69370d0713b6c79aa614334b2bb53 (patch) | |
tree | 4b6bf142c73c82a368eedeff281c7c4944cc7107 /packages/gitbook-markdown/lib | |
parent | e6a0fb856a6e4476534c96e5168f6693ec3d91ba (diff) | |
download | gitbook-fc675de6aad69370d0713b6c79aa614334b2bb53.zip gitbook-fc675de6aad69370d0713b6c79aa614334b2bb53.tar.gz gitbook-fc675de6aad69370d0713b6c79aa614334b2bb53.tar.bz2 |
Handle whitespace between lists in SUMMARY.md
Diffstat (limited to 'packages/gitbook-markdown/lib')
-rw-r--r-- | packages/gitbook-markdown/lib/summary.js | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/packages/gitbook-markdown/lib/summary.js b/packages/gitbook-markdown/lib/summary.js index 3953cb8..8d90e14 100644 --- a/packages/gitbook-markdown/lib/summary.js +++ b/packages/gitbook-markdown/lib/summary.js @@ -34,6 +34,26 @@ function splitBy(list, starter, ender) { }, []); } +function skipSpace(nodes) { + return _.filter(nodes, function(node) { + return node && node.type != 'space'; + }); +} + +function correctLoose(nodes) { + return _.map(nodes, function(node) { + // Return normal nodes + if(!node || node.type != 'loose_item_start') { + return node + } + + // Correct loose items + node.type = 'list_item_start'; + + return node; + }) +} + function listSplit(nodes, start_type, end_type) { return splitBy(nodes, function(el) { return el.type === start_type; @@ -97,7 +117,7 @@ function listGroups(src) { // Get out groups of lists return listSplit( - filterList(nodes), + filterList(correctLoose(skipSpace(nodes))), 'list_item_start', 'list_item_end' ); } |