summaryrefslogtreecommitdiffstats
path: root/lib/json
diff options
context:
space:
mode:
Diffstat (limited to 'lib/json')
-rw-r--r--lib/json/encodePage.js13
-rw-r--r--lib/json/encodeSummaryArticle.js12
2 files changed, 20 insertions, 5 deletions
diff --git a/lib/json/encodePage.js b/lib/json/encodePage.js
index d876c78..be92117 100644
--- a/lib/json/encodePage.js
+++ b/lib/json/encodePage.js
@@ -1,3 +1,5 @@
+var encodeSummaryArticle = require('./encodeSummaryArticle');
+
/**
Return a JSON representation of a page
@@ -10,7 +12,6 @@ function encodePage(page, summary) {
var attributes = page.getAttributes();
var article = summary.getByPath(file.getPath());
-
var result = attributes.toJS();
if (article) {
@@ -18,7 +19,15 @@ function encodePage(page, summary) {
result.level = article.getLevel();
result.depth = article.getDepth();
- // todo: next and prev
+ var nextArticle = summary.getNextArticle(article);
+ if (nextArticle) {
+ result.next = encodeSummaryArticle(nextArticle);
+ }
+
+ var prevArticle = summary.getPrevArticle(article);
+ if (prevArticle) {
+ result.previous = encodeSummaryArticle(prevArticle);
+ }
}
result.content = page.getContent();
diff --git a/lib/json/encodeSummaryArticle.js b/lib/json/encodeSummaryArticle.js
index b3f977a..987e44a 100644
--- a/lib/json/encodeSummaryArticle.js
+++ b/lib/json/encodeSummaryArticle.js
@@ -5,7 +5,14 @@
@param {SummaryArticle}
@return {Object}
*/
-function encodeSummaryArticle(article) {
+function encodeSummaryArticle(article, recursive) {
+ var articles = undefined;
+ if (recursive !== false) {
+ articles = article.getArticles()
+ .map(encodeSummaryArticle)
+ .toJS();
+ }
+
return {
title: article.getTitle(),
level: article.getLevel(),
@@ -13,8 +20,7 @@ function encodeSummaryArticle(article) {
anchor: article.getAnchor(),
url: article.getUrl(),
path: article.getPath(),
- articles: article.getArticles()
- .map(encodeSummaryArticle).toJS()
+ articles: articles
};
}