summaryrefslogtreecommitdiffstats
path: root/lib/api
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-26 23:19:19 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-26 23:19:19 +0200
commit878e7441f22a5ef2dc533b6979f73c75d402c0c0 (patch)
tree81d1fc65e0419f1015e7594403090cbafb331695 /lib/api
parent27d387e3e1d2389594670babad3afab6359c15fc (diff)
downloadgitbook-878e7441f22a5ef2dc533b6979f73c75d402c0c0.zip
gitbook-878e7441f22a5ef2dc533b6979f73c75d402c0c0.tar.gz
gitbook-878e7441f22a5ef2dc533b6979f73c75d402c0c0.tar.bz2
Stop running test on node 0.12 for windows
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/decodeGlobal.js3
-rw-r--r--lib/api/decodePage.js28
2 files changed, 28 insertions, 3 deletions
diff --git a/lib/api/decodeGlobal.js b/lib/api/decodeGlobal.js
index 1b0b135..118afb2 100644
--- a/lib/api/decodeGlobal.js
+++ b/lib/api/decodeGlobal.js
@@ -1,7 +1,8 @@
var decodeConfig = require('./decodeConfig');
/**
- Decode changes from a JS API to a output object
+ Decode changes from a JS API to a output object.
+ Only the configuration can be edited by plugin's hooks
@param {Output} output
@param {Object} result: result from API
diff --git a/lib/api/decodePage.js b/lib/api/decodePage.js
index 5cce56c..e0b7d1e 100644
--- a/lib/api/decodePage.js
+++ b/lib/api/decodePage.js
@@ -1,6 +1,7 @@
/**
- Decode changes from a JS API to a page object
+ Decode changes from a JS API to a page object.
+ Only the content can be edited by plugin's hooks.
@param {Output} output
@param {Page} page: page instance to edit
@@ -8,7 +9,30 @@
@return {Page}
*/
function decodePage(output, page, result) {
- // todo
+ var originalContent = page.getContent();
+
+ // No returned value
+ // Existing content will be used
+ if (!result) {
+ return page;
+ }
+
+ // GitBook 3
+ // Use returned page.content if different from original content
+ if (result.content != originalContent) {
+ return page.set('content', result.content);
+ }
+
+ // GitBook 2 compatibility
+ // Finally, use page.sections
+ if (result.sections) {
+ return page.set('content',
+ result.sections.map(function(section) {
+ return section.content;
+ }).join('\n')
+ );
+ }
+
return page;
}