summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-21 20:21:55 +0100
committerSamy Pessé <samypesse@gmail.com>2015-01-21 20:21:55 +0100
commit748f0046098ece68547bb86cd72e75e76655a260 (patch)
tree02c75717b44d66df2951473a429ca8dc812b51f1 /lib
parentcb709930bbccbc9fce31ce132f19c09e816c900f (diff)
downloadgitbook-748f0046098ece68547bb86cd72e75e76655a260.zip
gitbook-748f0046098ece68547bb86cd72e75e76655a260.tar.gz
gitbook-748f0046098ece68547bb86cd72e75e76655a260.tar.bz2
Add summary utils
Diffstat (limited to 'lib')
-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
+};