Merge pull request #1285 from GitbookIO/api/summary

[WIP] Api for plugins to access summary
This commit is contained in:
Samy Pessé
2016-05-08 22:28:15 +02:00
3 changed files with 57 additions and 2 deletions
+5 -2
View File
@@ -5,12 +5,14 @@ var fs = require('../utils/fs');
var Plugins = require('../plugins');
var deprecate = require('./deprecate');
var encodeConfig = require('./encodeConfig');
var encodeNavigation = require('./encodeNavigation');
var fileToURL = require('../output/helper/fileToURL');
var defaultBlocks = require('../constants/defaultBlocks');
var gitbook = require('../gitbook');
var encodeConfig = require('./encodeConfig');
var encodeSummary = require('./encodeSummary');
var encodeNavigation = require('./encodeNavigation');
/**
Encode a global context into a JS object
It's the context for page's hook, etc
@@ -29,6 +31,7 @@ function encodeGlobal(output) {
var result = {
log: logger,
config: encodeConfig(output, book.getConfig()),
summary: encodeSummary(output. book.getSummary()),
/**
Check if the book is a multilingual book
+51
View File
@@ -0,0 +1,51 @@
var encodeSummaryArticle = require('../json/encodeSummaryArticle');
/**
Encode summary to provide an API to plugin
@param {Output} output
@param {Config} config
@return {Object}
*/
function encodeSummary(output, summary) {
var result = {
/**
Iterate over the summary, it stops when the "iter" returns false
@param {Function} iter
*/
walk: function (iter) {
summary.getArticle(function(article) {
var jsonArticle = encodeSummaryArticle(article, false);
return iter(jsonArticle);
});
},
/**
Get an article by its level
@param {String} level
@return {Object}
*/
getArticleByLevel: function(level) {
var article = summary.getByLevel(level);
return (article? encodeSummaryArticle(article) : undefined);
},
/**
Get an article by its path
@param {String} level
@return {Object}
*/
getArticleByPath: function(level) {
var article = summary.getByPath(level);
return (article? encodeSummaryArticle(article) : undefined);
}
};
return result;
}
module.exports = encodeSummary;
+1
View File
@@ -20,6 +20,7 @@ function encodeSummaryArticle(article, recursive) {
anchor: article.getAnchor(),
url: article.getUrl(),
path: article.getPath(),
ref: article.getRef(),
articles: articles
};
}