diff options
Diffstat (limited to 'lib/api/decodePage.js')
-rw-r--r-- | lib/api/decodePage.js | 28 |
1 files changed, 26 insertions, 2 deletions
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; } |