From 881d8b8d9540cfecba60acb42ab1e1d2cd6a5d8d Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 6 Nov 2020 13:48:59 +0000 Subject: [PATCH] pluginfw: Hook to include additional body in HTML exports (#4469) * hook, needs docs * docs --- doc/api/hooks_server-side.md | 18 ++++++++++++++++++ src/node/utils/ExportHtml.js | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/doc/api/hooks_server-side.md b/doc/api/hooks_server-side.md index 224d3c7e4..33188fa9c 100644 --- a/doc/api/hooks_server-side.md +++ b/doc/api/hooks_server-side.md @@ -661,6 +661,24 @@ function _analyzeLine(alineAttrs, apool) { } ``` +## exportHTMLAdditionalContent +Called from: src/node/utils/ExportHtml.js + +Things in context: + +1. padId + +This hook will allow a plug-in developer to include additional HTML content in the Body of the exported HTML + +Example: +``` +exports.exportHTMLAdditionalContent = async (hookName, context) => { + let padId = context; + return "I am groot in " + padId; +} + +``` + ## stylesForExport Called from: src/node/utils/ExportHtml.js diff --git a/src/node/utils/ExportHtml.js b/src/node/utils/ExportHtml.js index 2c5a2c213..665e3d7eb 100644 --- a/src/node/utils/ExportHtml.js +++ b/src/node/utils/ExportHtml.js @@ -498,6 +498,11 @@ exports.getPadHTMLDocument = async function (padId, revNum) let html = await getPadHTML(pad, revNum); + let exportHTMLAdditionalContent = await hooks.aCallAll("exportHTMLAdditionalContent", padId); + exportHTMLAdditionalContent.forEach(function(hookHtml){ + html += hookHtml; + }); + return eejs.require("ep_etherpad-lite/templates/export_html.html", { body: html, padId: Security.escapeHTML(padId),