diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 1ef488a7..5848aeea 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -145,11 +145,13 @@ class Markdown { const deflate = require('markdown-it-plantuml/lib/deflate') this.md.use(require('markdown-it-plantuml'), '', { generateSource: function (umlCode) { + const stripTrailingSlash = (url) => url.endsWith('/') ? url.slice(0, -1) : url + const serverAddress = stripTrailingSlash(config.preview.plantUMLServerAddress) + '/svg' const s = unescape(encodeURIComponent(umlCode)) const zippedCode = deflate.encode64( deflate.zip_deflate(`@startuml\n${s}\n@enduml`, 9) ) - return `http://www.plantuml.com/plantuml/svg/${zippedCode}` + return `${serverAddress}/${zippedCode}` } }) diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index ee8a57c7..79fe0f5f 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -53,6 +53,7 @@ export const DEFAULT_CONFIG = { latexInlineClose: '$', latexBlockOpen: '$$', latexBlockClose: '$$', + plantUMLServerAddress: 'http://www.plantuml.com/plantuml', scrollPastEnd: false, smartQuotes: true, sanitize: 'STRICT' // 'STRICT', 'ALLOW_STYLES', 'NONE' diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index a607f548..1bbcb18d 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -94,6 +94,7 @@ class UiTab extends React.Component { latexInlineClose: this.refs.previewLatexInlineClose.value, latexBlockOpen: this.refs.previewLatexBlockOpen.value, latexBlockClose: this.refs.previewLatexBlockClose.value, + plantUMLServerAddress: this.refs.previewPlantUMLServerAddress.value, scrollPastEnd: this.refs.previewScrollPastEnd.checked, smartQuotes: this.refs.previewSmartQuotes.checked, sanitize: this.refs.previewSanitize.value @@ -544,6 +545,19 @@ class UiTab extends React.Component { /> +