summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@friendco.de>2014-03-31 16:21:04 -0700
committerAaron O'Mullan <aaron.omullan@friendco.de>2014-03-31 17:06:39 -0700
commit3f3bade58e3b258aadab8ecf084004d06e62cede (patch)
tree9f2d47b9032368b0affb94320c922b7bb6041fe5
parent0821b10e18d011da6fcbb22631170f7a46e819f4 (diff)
downloadgitbook-3f3bade58e3b258aadab8ecf084004d06e62cede.zip
gitbook-3f3bade58e3b258aadab8ecf084004d06e62cede.tar.gz
gitbook-3f3bade58e3b258aadab8ecf084004d06e62cede.tar.bz2
Change summary data format
Simplify chapter objects, by making them identical to article objects besides the .articles attribute
-rw-r--r--lib/parse/summary.js5
-rw-r--r--templates/includes/book/summary.html2
-rw-r--r--test/summary.js24
3 files changed, 15 insertions, 16 deletions
diff --git a/lib/parse/summary.js b/lib/parse/summary.js
index f021401..1237b37 100644
--- a/lib/parse/summary.js
+++ b/lib/parse/summary.js
@@ -90,10 +90,9 @@ function parseArticle(nodes) {
}
function parseChapter(nodes) {
- return {
- chapter: parseTitle(_.first(nodes).text),
+ return _.extend(parseTitle(_.first(nodes).text), {
articles: _.map(listSplit(filterList(nodes), 'list_item_start', 'list_item_end'), parseArticle)
- };
+ });
}
function parseSummary(src) {
diff --git a/templates/includes/book/summary.html b/templates/includes/book/summary.html
index 52eeb2f..161ba79 100644
--- a/templates/includes/book/summary.html
+++ b/templates/includes/book/summary.html
@@ -9,7 +9,7 @@
<li class="divider"></li>
{% for item in summary.chapters %}
<li>
- <a href="{{ basePath }}/{{ item.chapter.path }}">{{ item.chapter.title }}</a>
+ <a href="{{ basePath }}/{{ item.path }}">{{ item.title }}</a>
{% if item.articles.length > 0 %}
<ul class="articles">
{% for article in item.articles %}
diff --git a/test/summary.js b/test/summary.js
index 5439182..bf21ce1 100644
--- a/test/summary.js
+++ b/test/summary.js
@@ -23,21 +23,21 @@ describe('Summary parsing', function () {
});
it('should detect paths and titles', function() {
- assert(LEXED.chapters[0].chapter.path);
- assert(LEXED.chapters[1].chapter.path);
- assert(LEXED.chapters[2].chapter.path);
+ assert(LEXED.chapters[0].path);
+ assert(LEXED.chapters[1].path);
+ assert(LEXED.chapters[2].path);
- assert(LEXED.chapters[0].chapter.title);
- assert(LEXED.chapters[1].chapter.title);
- assert(LEXED.chapters[2].chapter.title);
+ assert(LEXED.chapters[0].title);
+ assert(LEXED.chapters[1].title);
+ assert(LEXED.chapters[2].title);
});
it('should normalize paths from .md to .html', function() {
- assert.equal(LEXED.chapters[0].chapter.path,'chapter-1/README.html');
- assert.equal(LEXED.chapters[0].chapter._path,'chapter-1/README.md');
- assert.equal(LEXED.chapters[1].chapter.path,'chapter-2/README.html');
- assert.equal(LEXED.chapters[1].chapter._path,'chapter-2/README.md');
- assert.equal(LEXED.chapters[2].chapter.path,'chapter-3/README.html');
- assert.equal(LEXED.chapters[2].chapter._path,'chapter-3/README.md');
+ assert.equal(LEXED.chapters[0].path,'chapter-1/README.html');
+ assert.equal(LEXED.chapters[0]._path,'chapter-1/README.md');
+ assert.equal(LEXED.chapters[1].path,'chapter-2/README.html');
+ assert.equal(LEXED.chapters[1]._path,'chapter-2/README.md');
+ assert.equal(LEXED.chapters[2].path,'chapter-3/README.html');
+ assert.equal(LEXED.chapters[2]._path,'chapter-3/README.md');
});
});