re:dash の Dashboard で script が動かない原因(ver 5.0.2)
結論から言うと
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でもだすか・・・
Author And Source
この問題について(re:dash の Dashboard で script が動かない原因(ver 5.0.2)), 我々は、より多くの情報をここで見つけました https://qiita.com/44int/items/86adc3777d105d5a5458著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .