From e9f55adb3af8801959e86f2ff6a3ff2c7da4b0ad Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 26 Jun 2017 13:24:55 -0400 Subject: [PATCH] FEATURE: add table support --- app/assets/javascripts/markdown-it-bundle.js | 1 + .../engines/discourse-markdown-it.js.es6 | 3 ++- .../engines/markdown-it/table.js.es6 | 21 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/pretty-text/engines/markdown-it/table.js.es6 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]' + ]); +}