背景
类似于 github 和 V 站的 markdown 使用场景
- 前台用户写 markdown ,能前台预览(这步是放前端做的)
- 存储后 markdown 文本入库,
- 访问时从库里读 markdown 文本,后端渲染后插入到模板里返回给浏览器。
目前情况:前后端都是使用 marked 做解释器。
比如下面这个 markdown 文件。
# title
<a href="#" onclick="do sth...">link</a>
<script>
do sth...
</script>
```
<script>
do sth...
</script>
```
被解释的时候不管是 a 标签内的 onclick 还是 script 标签内的 js ,都会被插入到 html 里。
还是这个文件,放 github 的编辑器里测试了下,前两者都不会被插入到 html 里,而```内的不受影响
看了下貌似是因为 github 的做法是只支持部分语法,并不是支持所有 html 标签( V 站貌似也是这样的)。
我自己的考虑:
- 前端生成 DOM 后,先移除其中的
script标签。 但是对于绑定的事件无效。 - 生成 DOM 前,查找 script 标签和 onclick 等字符串,(我自己也觉得这个很不靠谱。。。 233 )
- 求类似 github/v2ex 用的这种支持部分语法的 markdown 翻译器推荐
- marked 有相关配置?(第一次用这个,求告知)
过年这几天貌似冒泡的都不多 (忧桑...)
求不沉 T^T