summaryrefslogtreecommitdiffstats
path: root/lib/api/encodeNavigation.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-29 10:17:16 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-29 10:17:16 +0200
commit93e701f4712ab9e476061f8f81fb03eda1c2af2a (patch)
tree8e07db9dcb7b44d07d29f2d0a4cd8eccb564302e /lib/api/encodeNavigation.js
parent68b9bf7e38867eed8763854a731f15959aaf65b5 (diff)
downloadgitbook-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.js18
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;