Simon-He95/markstream-vue

Multi-framework streaming Markdown renderers for AI apps: Vue/Nuxt, React/Next.js, Svelte, and Angular, with Mermaid, KaTeX, stream-diffs code blocks, safe HTML, and low-jitter updates.

解决的问题

标准的 Markdown 渲染器是为静态文档设计的。当用于 AI 聊天界面,文本以逐 token 流式传输时,文档会从头开始重新解析和重新渲染,导致视觉闪烁、内存飙升和布局偏移。markstream-vue 提供了一个稳定、高性能的渲染器,专门针对这些流式状态进行了优化,确保在不牺牲复杂格式的前提下,实现平滑的「打字」效果。

工作原理

该项目为 Vue 3(以及其他框架通过配套包)提供专用渲染器,可处理不完整的 Markdown 语法。它采用两种主要渲染模式:长文档使用虚拟窗口,聊天式流式传输使用增量批处理。它与 stream-markdown-parser 集成,处理部分 Markdown 状态的逻辑,并支持 Mermaid 图表、KaTeX 数学公式、以及通过 stream-diffs 依赖包实现的流式代码块等重载块的渐进式渲染。

适用人群

开发 AI 聊天 UI、LLM 驱动的应用程序,或任何需要消费 Server-Sent Events (SSE) 或 WebSocket 流式 Markdown 文本的界面的开发者,需要专业、无闪烁的用户体验。

主要亮点

  • 流式优先设计:专为最小化 AI 令牌流中的闪烁并保持可预测的内存使用而构建。
  • 多框架支持:虽然此包专为 Vue 3/Nuxt/VitePress 设计,但 Markstream 家族还包括 React、Svelte、Angular 和 Vue 2 的适配器。
  • 丰富媒体支持:支持 Mermaid 图表、KaTeX 数学公式和 D2 信息图的渐进式渲染。
  • 高级代码块:与 stream-diffs 集成,增强代码和差异块的渲染,实现实时更新。
  • 灵活的渲染模式:提供 chat 模式以保持稳定节奏,以及 docs 模式以实现丰富的文档布局。

相关

  • 项目
  • 项目
  • 项目
  • 项目