流式 Markdown 渲染完全指南【三】

发布时间:2026/8/12 19:16:55
流式 Markdown 渲染完全指南【三】 状态机驱动——代码块的专项攻坚引言:为什么代码块是“万恶之源”?缓存延迟渲染通过“延迟显示不完整语法”解决了大部分闪烁,但它有两个致命短板:它并不理解“上下文”——它不知道当前在不在代码块里,只是机械地匹配**、[等模式代码块内部的内容,必须被视为纯文本,而不是 Markdown 语法如果解析器在代码块内部还在解析加粗、标题、列表,就会彻底错乱。解决方案:用一个轻量级的有限状态机(FSM),在调用重型解析器之前先对内容做“预处理”或“标记”。1. 什么是状态机?为什么它适合这个场景?状态机是一种数学模型,它由三个要素组成:状态(State):系统当前所处的模式(如“普通模式”、“代码块模式”)事件(Event):触发状态切换的条件(如“遇到 ```”)动作(Action):进入新状态后执行的操作(如“切换渲染策略”)对于流式 Markdown 解析,状态机的作用是:理解当前所处的“上下文”,从而决定如何解释看到的字符。状态机有两种实现路径,适用于不同的场景: