diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-01-21 20:21:55 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-01-21 20:21:55 +0100 |
commit | 748f0046098ece68547bb86cd72e75e76655a260 (patch) | |
tree | 02c75717b44d66df2951473a429ca8dc812b51f1 /lib | |
parent | cb709930bbccbc9fce31ce132f19c09e816c900f (diff) | |
download | gitbook-748f0046098ece68547bb86cd72e75e76655a260.zip gitbook-748f0046098ece68547bb86cd72e75e76655a260.tar.gz gitbook-748f0046098ece68547bb86cd72e75e76655a260.tar.bz2 |
Add summary utils
Diffstat (limited to 'lib')
-rw-r--r-- | lib/utils/summary.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/utils/summary.js b/lib/utils/summary.js new file mode 100644 index 0000000..274cab3 --- /dev/null +++ b/lib/utils/summary.js @@ -0,0 +1,24 @@ +var _ = require("lodash"); +var links = require("./links"); + +function normalizeChapters(chapterList, level, base) { + var i = base || 0; + return _.map(chapterList, function(chapter) { + chapter.level = (level? [level || "", i] : [i]).join("."); + chapter.exteral = links.isExternal(chapter.path); + chapter.article = normalizeChapters(chapter.articles || [], chapter.level, 1); + + i = i + 1; + return chapter; + }); +}; + +function normalizeSummary(summary) { + if (_.isArray(summary)) summary = { chapters: summary }; + summary.chapters = normalizeChapters(summary.chapters); + return summary; +}; + +module.exports = { + normalize: normalizeSummary +}; |