diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-29 10:17:16 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-29 10:17:16 +0200 |
commit | 93e701f4712ab9e476061f8f81fb03eda1c2af2a (patch) | |
tree | 8e07db9dcb7b44d07d29f2d0a4cd8eccb564302e /lib/api/encodeNavigation.js | |
parent | 68b9bf7e38867eed8763854a731f15959aaf65b5 (diff) | |
download | gitbook-93e701f4712ab9e476061f8f81fb03eda1c2af2a.zip gitbook-93e701f4712ab9e476061f8f81fb03eda1c2af2a.tar.gz gitbook-93e701f4712ab9e476061f8f81fb03eda1c2af2a.tar.bz2 |
Complete deprecated page.progress and this.navigation
Diffstat (limited to 'lib/api/encodeNavigation.js')
-rw-r--r-- | lib/api/encodeNavigation.js | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/api/encodeNavigation.js b/lib/api/encodeNavigation.js index c48ba50..8e329a1 100644 --- a/lib/api/encodeNavigation.js +++ b/lib/api/encodeNavigation.js @@ -1,3 +1,4 @@ +var Immutable = require('immutable'); /** Encode an article for next/prev @@ -26,13 +27,15 @@ function encodeArticle(pages, article) { */ function encodeNavigation(output) { var book = output.getBook(); + var pages = output.getPages(); var summary = book.getSummary(); var articles = summary.getArticlesAsList(); - return articles + + var navigation = articles .map(function(article, i) { var ref = article.getRef(); - if (ref) { + if (!ref) { return undefined; } @@ -45,14 +48,17 @@ function encodeNavigation(output) { index: i, title: article.getTitle(), introduction: (i === 0), - prev: prev? encodeArticle(prev) : undefined, - next: next? encodeArticle(next) : undefined, + prev: prev? encodeArticle(pages, prev) : undefined, + next: next? encodeArticle(pages, next) : undefined, level: article.getLevel() } ]; }) - .toMap() - .toJS(); + .filter(function(e) { + return Boolean(e); + }); + + return Immutable.Map(navigation).toJS(); } module.exports = encodeNavigation; |