42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const deprecate_1 = __importDefault(require("./deprecate"));
|
|
/**
|
|
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
|
|
@param {Object} result: result from API
|
|
@return {Page}
|
|
*/
|
|
function decodePage(output, page, result) {
|
|
const originalContent = page.getContent();
|
|
// No returned value
|
|
// Existing content will be used
|
|
if (!result) {
|
|
return page;
|
|
}
|
|
deprecate_1.default.disable("page.sections");
|
|
// GitBook/HonKit 3
|
|
// Use returned page.content if different from original content
|
|
if (result.content != originalContent) {
|
|
page = page.set("content", result.content);
|
|
}
|
|
// GitBook 2 compatibility
|
|
// Finally, use page.sections
|
|
else if (result.sections) {
|
|
page = page.set("content", result.sections
|
|
.map((section) => {
|
|
return section.content;
|
|
})
|
|
.join("\n"));
|
|
}
|
|
deprecate_1.default.enable("page.sections");
|
|
return page;
|
|
}
|
|
exports.default = decodePage;
|