結論から言うと
https://github.com/getredash/redash/blob/master/client/app/filters/markdown.js
内で利用されている markdown ライブラリが、 タグエスケープしてしまうためです。
なので、 REDASH_ALLOW_SCRIPTS_IN_USER_INPUT: "true"
を渡しても
Dashboard上で(プレビューも含め)入力したタグがそのまま表示されるだけになってしまう。
モジュールを marked に変えればうまく動きます。
(というか markdown0.5.0 ではどうやっても対応できない。)
marked に変更する方法
package.json
https://github.com/getredash/redash/blob/master/package.json#L69
の "markdown": "0.5.0"
を削除して "marked": "0.5.2"
に変更。
client/app/filters/markdown.js
下記に書き換え。
// import { markdown } from 'markdown';
import marked from 'marked';
export default function init(ngModule) {
ngModule.filter('markdown', ($sce, clientConfig) =>
function parseMarkdown(text) {
if (!text) {
return '';
}
// let html = markdown.toHTML(String(text));
let html = marked(String(text));
if (clientConfig.allowScriptsInUserInput) {
html = $sce.trustAsHtml(html);
}
return html;
});
}
あとは npm run build とかすれば、ちゃんと動きます。
PRでもだすか・・・