diff --git a/app/assets/javascripts/markdown-it-bundle.js b/app/assets/javascripts/markdown-it-bundle.js index 3e897bdd26c..d23287c271e 100644 --- a/app/assets/javascripts/markdown-it-bundle.js +++ b/app/assets/javascripts/markdown-it-bundle.js @@ -9,3 +9,4 @@ //= require ./pretty-text/engines/markdown-it/code //= require ./pretty-text/engines/markdown-it/category-hashtag //= require ./pretty-text/engines/markdown-it/censored +//= require ./pretty-text/engines/markdown-it/table diff --git a/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 b/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 index db8aab74989..9a45ef6a35d 100644 --- a/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 +++ b/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 @@ -164,7 +164,8 @@ export function cook(raw, opts) { opts.discourse.hoisted = hoisted; - let cooked = opts.discourse.sanitizer(opts.engine.render(raw), whiteLister).trim(); + const rendered = opts.engine.render(raw); + let cooked = opts.discourse.sanitizer(rendered, whiteLister).trim(); const keys = Object.keys(hoisted); if (keys.length) { diff --git a/app/assets/javascripts/pretty-text/engines/markdown-it/table.js.es6 b/app/assets/javascripts/pretty-text/engines/markdown-it/table.js.es6 new file mode 100644 index 00000000000..a7072b20b2b --- /dev/null +++ b/app/assets/javascripts/pretty-text/engines/markdown-it/table.js.es6 @@ -0,0 +1,21 @@ +export function setup(helper) { + + if (!helper.markdownIt) { return; } + + // this is built in now + // TODO: sanitizer needs fixing, does not properly support this yet + helper.whiteList([ + 'table', + 'th[style=text-align:right]', + 'th[style=text-align:left]', + 'th[style=text-align:center]', + 'tbody', + 'thead', + 'tr', + 'th', + 'td', + 'td[style=text-align:right]', + 'td[style=text-align:left]', + 'td[style=text-align:center]' + ]); +}