diff options
Diffstat (limited to 'lib/utils')
-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 +}; |