summaryrefslogtreecommitdiffstats
path: root/lib/utils/summary.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/summary.js')
-rw-r--r--lib/utils/summary.js24
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
+};