From 46d46f21e4300fdfaca781be1ab80c3703d2e15d Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Mon, 11 Dec 2017 15:01:35 +0100 Subject: [PATCH 1/4] convert uml to utf8 before converting to base64 --- browser/lib/markdown.js | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index da1330cc..031f9610 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -8,7 +8,7 @@ import ConfigManager from 'browser/main/lib/ConfigManager' const katex = window.katex const config = ConfigManager.get() -function createGutter (str) { +function createGutter(str) { const lc = (str.match(/\n/g) || []).length const lines = [] for (let i = 1; i <= lc; i++) { @@ -31,10 +31,10 @@ var md = markdownit({ return `
${str}
` } return '
' +
-    createGutter(str) +
-    '' +
-    str +
-    '
' + createGutter(str) + + '' + + str + + '' } }) md.use(emoji, { @@ -57,7 +57,7 @@ md.use(math, { blockRenderer: function (str) { let output = '' try { - output = katex.renderToString(str.trim(), {displayMode: true}) + output = katex.renderToString(str.trim(), { displayMode: true }) } catch (err) { output = `
${err.message}
` } @@ -76,7 +76,16 @@ md.use(require('markdown-it-named-headers'), { } }) md.use(require('markdown-it-kbd')) -md.use(require('markdown-it-plantuml')) +md.use(require("markdown-it-plantuml"), "", { + generateSource: function (umlCode) { + var deflate = require("markdown-it-plantuml/lib/deflate") + var s = unescape(encodeURIComponent(umlCode)) + var zippedCode = deflate.encode64( + deflate.zip_deflate("@startuml\n" + s + "\n@enduml", 9) + ); + return "http://www.plantuml.com/plantuml/svg/" + zippedCode + } +}) // Override task item md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { @@ -110,7 +119,7 @@ md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { state.line = nextLine token = state.push('paragraph_open', 'p', 1) - token.map = [ startLine, state.line ] + token.map = [startLine, state.line] if (state.parentType === 'list') { const match = content.match(/^\[( |x)\] ?(.+)/i) @@ -121,7 +130,7 @@ md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { token = state.push('inline', '', 0) token.content = content - token.map = [ startLine, state.line ] + token.map = [startLine, state.line] token.children = [] token = state.push('paragraph_close', 'p', -1) @@ -131,7 +140,7 @@ md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { // Add line number attribute for scrolling const originalRender = md.renderer.render -md.renderer.render = function render (tokens, options, env) { +md.renderer.render = function render(tokens, options, env) { tokens.forEach((token) => { switch (token.type) { case 'heading_open': @@ -147,12 +156,12 @@ md.renderer.render = function render (tokens, options, env) { // FIXME We should not depend on global variable. window.md = md -function normalizeLinkText (linkText) { +function normalizeLinkText(linkText) { return md.normalizeLinkText(linkText) } const markdown = { - render: function markdown (content) { + render: function markdown(content) { if (!_.isString(content)) content = '' const renderedContent = md.render(content) return renderedContent From 4cdfc738c0003f2145579f3bed3b2a813efcbed3 Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Mon, 11 Dec 2017 15:14:02 +0100 Subject: [PATCH 2/4] forgot to run eslint (again) --- browser/lib/markdown.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 031f9610..99b9b2b2 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -8,7 +8,7 @@ import ConfigManager from 'browser/main/lib/ConfigManager' const katex = window.katex const config = ConfigManager.get() -function createGutter(str) { +function createGutter (str) { const lc = (str.match(/\n/g) || []).length const lines = [] for (let i = 1; i <= lc; i++) { @@ -76,14 +76,14 @@ md.use(require('markdown-it-named-headers'), { } }) md.use(require('markdown-it-kbd')) -md.use(require("markdown-it-plantuml"), "", { +md.use(require('markdown-it-plantuml'), '', { generateSource: function (umlCode) { - var deflate = require("markdown-it-plantuml/lib/deflate") + var deflate = require('markdown-it-plantuml/lib/deflate') var s = unescape(encodeURIComponent(umlCode)) var zippedCode = deflate.encode64( - deflate.zip_deflate("@startuml\n" + s + "\n@enduml", 9) - ); - return "http://www.plantuml.com/plantuml/svg/" + zippedCode + deflate.zip_deflate(`@startuml\n${s}\n@enduml`, 9) + ) + return `http://www.plantuml.com/plantuml/svg/${zippedCode}` } }) @@ -140,7 +140,7 @@ md.block.ruler.at('paragraph', function (state, startLine/*, endLine */) { // Add line number attribute for scrolling const originalRender = md.renderer.render -md.renderer.render = function render(tokens, options, env) { +md.renderer.render = function render (tokens, options, env) { tokens.forEach((token) => { switch (token.type) { case 'heading_open': @@ -156,12 +156,12 @@ md.renderer.render = function render(tokens, options, env) { // FIXME We should not depend on global variable. window.md = md -function normalizeLinkText(linkText) { +function normalizeLinkText (linkText) { return md.normalizeLinkText(linkText) } const markdown = { - render: function markdown(content) { + render: function markdown (content) { if (!_.isString(content)) content = '' const renderedContent = md.render(content) return renderedContent From 6906c0ab0de8d179865ddb9c3f122db2ed888edc Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Wed, 13 Dec 2017 17:16:28 +0100 Subject: [PATCH 3/4] changed var into const --- browser/lib/markdown.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 99b9b2b2..ba5a3bc8 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -78,9 +78,9 @@ md.use(require('markdown-it-named-headers'), { md.use(require('markdown-it-kbd')) md.use(require('markdown-it-plantuml'), '', { generateSource: function (umlCode) { - var deflate = require('markdown-it-plantuml/lib/deflate') - var s = unescape(encodeURIComponent(umlCode)) - var zippedCode = deflate.encode64( + const deflate = require('markdown-it-plantuml/lib/deflate') + 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}` From 1cb4f37c95f449c3573b64314342fa26fc3a1784 Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Mon, 15 Jan 2018 22:27:38 +0100 Subject: [PATCH 4/4] moved the import outside the use config section --- browser/lib/markdown.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index ba5a3bc8..79383ca9 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -76,9 +76,10 @@ md.use(require('markdown-it-named-headers'), { } }) md.use(require('markdown-it-kbd')) + +const deflate = require('markdown-it-plantuml/lib/deflate') md.use(require('markdown-it-plantuml'), '', { generateSource: function (umlCode) { - const deflate = require('markdown-it-plantuml/lib/deflate') const s = unescape(encodeURIComponent(umlCode)) const zippedCode = deflate.encode64( deflate.zip_deflate(`@startuml\n${s}\n@enduml`, 9)