diff options
Diffstat (limited to 'packages/gitbook/src/json/encodeSummaryArticle.js')
-rw-r--r-- | packages/gitbook/src/json/encodeSummaryArticle.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/gitbook/src/json/encodeSummaryArticle.js b/packages/gitbook/src/json/encodeSummaryArticle.js new file mode 100644 index 0000000..0fb6368 --- /dev/null +++ b/packages/gitbook/src/json/encodeSummaryArticle.js @@ -0,0 +1,30 @@ + +/** + * Encode a SummaryArticle to JSON + * + * @param {SummaryArticle} article + * @param {URIIndex} urls + * @param {Boolean} recursive + * @return {Object} + */ +function encodeSummaryArticle(article, urls, recursive) { + let articles = undefined; + if (recursive !== false) { + articles = article.getArticles() + .map(innerArticle => encodeSummaryArticle(innerArticle, urls, recursive)) + .toJS(); + } + + return { + title: article.getTitle(), + level: article.getLevel(), + depth: article.getDepth(), + anchor: article.getAnchor(), + url: urls.resolveToURL(article.getPath() || article.getUrl()), + path: article.getPath(), + ref: article.getRef(), + articles + }; +} + +module.exports = encodeSummaryArticle; |