summaryrefslogtreecommitdiffstats
path: root/lib/parse/summary.js
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@friendco.de>2014-03-31 19:34:06 -0700
committerAaron O'Mullan <aaron.omullan@friendco.de>2014-03-31 19:34:06 -0700
commit0ad6533f12ffacb99d5c69332310849ebcf29e16 (patch)
tree36872dd22cc6492a4dac8803cfdc4a7f453fe301 /lib/parse/summary.js
parent2234026153912c341f68e7ace3736cd90694d405 (diff)
downloadgitbook-0ad6533f12ffacb99d5c69332310849ebcf29e16.zip
gitbook-0ad6533f12ffacb99d5c69332310849ebcf29e16.tar.gz
gitbook-0ad6533f12ffacb99d5c69332310849ebcf29e16.tar.bz2
Add level attribute to chapters/articles
Diffstat (limited to 'lib/parse/summary.js')
-rw-r--r--lib/parse/summary.js16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/parse/summary.js b/lib/parse/summary.js
index 1237b37..0995c40 100644
--- a/lib/parse/summary.js
+++ b/lib/parse/summary.js
@@ -62,20 +62,24 @@ function filterList(nodes) {
// Parses an Article or Chapter title
// supports extracting links
-function parseTitle(src) {
+function parseTitle(src, nums) {
// Check if it's a link
var matches = marked.InlineLexer.rules.link.exec(src);
+ var level = nums.join('.');
+
// Not a link, return plain text
if(!matches) {
return {
title: src,
+ level: level,
path: null,
};
}
return {
title: matches[1],
+ level: level,
// Replace .md references with .html
path: matches[2].replace(/\.md$/, '.html'),
@@ -85,13 +89,13 @@ function parseTitle(src) {
};
}
-function parseArticle(nodes) {
- return parseTitle(_.first(nodes).text);
+function parseArticle(chapterNum, nodes, idx) {
+ return parseTitle(_.first(nodes).text, [chapterNum, idx+1]);
}
-function parseChapter(nodes) {
- return _.extend(parseTitle(_.first(nodes).text), {
- articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), parseArticle)
+function parseChapter(nodes, idx) {
+ return _.extend(parseTitle(_.first(nodes).text, [idx+1]), {
+ articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), parseArticle.bind(null, idx+1))
});
}