·
Across the Great Wall, we can reach every corner in the world.

markdown 的解析有几种方式:

  • AST 比如 remark 的做法(这种自定义能力强)
  • 实时解析 token,回退处理,比如 markdown-it(这种渲染速度快)

hackertalk 用的是 markdown-it 解析的 token 做 AST 封装实现 data 层,对 markdown-it 的源码进行魔改,富文本编辑器实现 view 层,代码高亮用的 prismjs。

不过目前 markdown-it 体验不出快多少,后续版本我可能会自己实现一个 markdown AST,完全控制数据层的逻辑。

富文本编辑器的实现:hackertalk 用的是 prosemirror 实现的,加了一堆自定义插件,改了部分源码,之所以用 prosemirror 是因为这个是目前富文本方案输入层最稳定的,slatejs、 quilljs 有各种问题。

Replies
1

感谢分享!

所以最后我决定用现成的轮子(doge)