diff --git a/client/themes/default/scss/app.scss b/client/themes/default/scss/app.scss index 006203e3..f5bb17f9 100644 --- a/client/themes/default/scss/app.scss +++ b/client/themes/default/scss/app.scss @@ -581,7 +581,7 @@ } } - pre.diagram { + .diagram { margin-top: 1rem; } diff --git a/server/modules/rendering/html-diagram/definition.yml b/server/modules/rendering/html-diagram/definition.yml new file mode 100644 index 00000000..f850c7f0 --- /dev/null +++ b/server/modules/rendering/html-diagram/definition.yml @@ -0,0 +1,8 @@ +key: htmlDiagram +title: Diagrams Post-Processor +description: HTML Processing for diagrams (draw.io) +author: requarks.io +icon: mdi-chart-multiline +enabledDefault: true +dependsOn: htmlCore +props: {} diff --git a/server/modules/rendering/html-diagram/renderer.js b/server/modules/rendering/html-diagram/renderer.js new file mode 100644 index 00000000..32b3088d --- /dev/null +++ b/server/modules/rendering/html-diagram/renderer.js @@ -0,0 +1,10 @@ +module.exports = { + async init($, config) { + $(`pre.diagram`).each((idx, elm) => { + $(elm).children('svg').each((sidx, svg) => { + $(svg).removeAttr('content') + }) + $(elm).replaceWith($(`
${$(elm).html()}
`)) + }) + } +} diff --git a/server/modules/rendering/markdown-core/renderer.js b/server/modules/rendering/markdown-core/renderer.js index ef8cd5f0..42bd12be 100644 --- a/server/modules/rendering/markdown-core/renderer.js +++ b/server/modules/rendering/markdown-core/renderer.js @@ -27,7 +27,11 @@ module.exports = { typographer: this.config.typographer, quotes: _.get(quoteStyles, this.config.quotes, quoteStyles.English), highlight(str, lang) { - return `
${_.escape(str)}
` + if (lang === 'diagram') { + return `
` + Buffer.from(str, 'base64').toString() + `
` + } else { + return `
${_.escape(str)}
` + } } })