如何增量地将 markdown 转换成 html?
现在后台是流式输出 markdown 字符串,并且每次我也不断处理全量的 markdown 字符串,再使用MarkdownContent这个组件去渲染成 html,就是这个dangerouslySetInnerHTML={{ __html: html }}去全量更新

但这样会导致一个问题,就是在流式输出的过程中,由于会不断地执行这个MarkdownView组件,导致无法使用鼠标选中渲染后的文本,因为在下次 re-render 时,这个dom已经不存在了,选中状态就又丢失了!

不过我看了下像chatgpt或者deepseek的markdown渲染,就是可以的,审查他的markdown,应该是增量更新的

我后面研究了下,自己写了个markdown的parser,但我觉得通过重新写一个parser去实现这个需求,工作量太大,有什么成熟的方案吗

github: github.com

live demo: linzhe141.github.io
展开
淋着141于2025-03-04 01:58发布的图片
淋着141于2025-03-04 01:58发布的图片
评论