diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 7ebe5a81..49fd2f86 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -163,6 +163,22 @@ class Markdown { } }) + // Ditaa support + this.md.use(require('markdown-it-plantuml'), { + openMarker: '@startditaa', + closeMarker: '@endditaa', + generateSource: function (umlCode) { + const stripTrailingSlash = (url) => url.endsWith('/') ? url.slice(0, -1) : url + // Currently PlantUML server doesn't support Ditaa in SVG, so we set the format as PNG at the moment. + const serverAddress = stripTrailingSlash(config.preview.plantUMLServerAddress) + '/png' + const s = unescape(encodeURIComponent(umlCode)) + const zippedCode = deflate.encode64( + deflate.zip_deflate(`@startditaa\n${s}\n@endditaa`, 9) + ) + return `${serverAddress}/${zippedCode}` + } + }) + // Override task item this.md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { let content, terminate, i, l, token