1. AI 流式渲染的 Markdown 分块与代码块语法高亮的边界
AI 流式渲染中 Markdown 分块与代码块语法高亮的边界在哪里?如何避免流式分块破坏代码块结构?
- 分块粒度与 Markdown 结构的对齐
- 代码块未闭合期间的高亮策略
- 分块边界(行级切分、块级切分)的选择
流式分块的边界问题是"增量切在哪":若按任意字节切分,可能切断代码块或列表结构。工程上以"行级/块级"为切分边界——增量按完整行聚合,代码块以 围栏的成对状态判断是否已闭合:围栏未闭合时整块视为"进行中代码块",渲染为代码块容器但暂不高亮(或用无语法高亮的纯文本样式),闭合后才触发语法高亮;列表、表格等也需在块级完整时才渲染其结构。边界取舍:块级切分保真但延迟高(小增量也等待块闭合),行级切分即时但可能频繁重渲染;实践中"行级即时渲染 + 代码块特判"兼顾两者——普通文本按行渲染,遇到 则切换到代码块累积模式。高亮边界:进行中的块用 CSS 固定高度/占位避免布局跳动,闭合后异步高亮(Worker + 节流),并记住"已完成块"缓存避免重复高亮。
答出"行级即时 + 块级特判"的分块策略、围栏成对状态驱动的未闭合处理,以及"完成后高亮 + 缓存"的性能边界。