markstream-vue

让 AI 流式输出 Markdown 在多框架下流畅渲染,低延迟不卡顿

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开源模型 🍴 复刻 189 🐛 待处理 1 👀 关注 7
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 3053
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 MIT 许可证,完全免费开源,可自行部署使用。

项目预览

markstream-vue 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开源模型
开发团队Simon-He95
定价模式🏷️完全免费
价格说明MIT 许可证,完全免费开源,可自行部署使用。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Vue
技术栈/模型ai,ai-chat,angular,katex,llm,markdown,markdown-renderer,markstream,mermaid,nextjs,nuxt,octane,react,safe-html,solidjs,stream-markdown,streaming-markdown,svelte,vitepress,vue
GitHub 星标★ 3053
上线时间2025-05-22 00:00:00
代码更新2026-11-06
仓库体积26.4 MB
本站数据更新2026-11-09
维护状态活跃
收录时间2026-08-09
浏览次数5

项目介绍

markstream-vue 是一个面向 AI 应用的多框架流式 Markdown 渲染器,支持 Vue/Nuxt、React/Next.js、Svelte 和 Angular 等主流前端框架。它解决的是 AI 对话或流式输出场景中,Markdown 内容实时渲染的性能与体验问题,核心能力包括:低延迟的流式更新(低抖动)、内置 Mermaid 图表、KaTeX 数学公式、Shiki 代码高亮、Monaco 编辑器集成,以及安全的 HTML 渲染策略。项目通过统一的渲染核心和框架适配层,让开发者能在不同技术栈中复用同一套流式渲染逻辑,减少重复开发,提升 AI 应用的内容展示效率。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3053

技术标签

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 已有一个 Vue 3 / Nuxt / VitePress 前端项目(markstream-vue 只服务 Vue 系框架)
  • 本机已安装 Node.js 并可使用 pnpm(README 的安装命令基于 pnpm)
  • 需要 Mermaid 图表、KaTeX 公式、代码高亮等能力由该渲染器内置提供

安装与启动步骤

  1. 1确认项目环境

    markstream-vue 是 Vue 3 / Nuxt / VitePress 的流式 Markdown 渲染器,React、Svelte、Angular 等请改用同系列兄弟包,不要装这个。

  2. 2安装 markstream-vue

    在项目根目录用 pnpm 安装;用 npm 的项目把命令换成 npm install markstream-vue。2.x 是 npm 的 latest 稳定版。

    pnpm add markstream-vue
  3. 3引入组件与样式

    务必同时引入 markstream-vue/index.css,否则渲染样式会缺失。content 传流式文本,final 表示是否已输出完成。

    <script setup lang="ts">
    import MarkdownRender from 'markstream-vue'
    import 'markstream-vue/index.css'
    
    defineProps<{
      content: string
      isDone: boolean
    }>()
    </script>
    
    <template>
      <MarkdownRender mode="chat" :content="content" :final="isDone" />
    </template>
  4. 4锁定 1.x 版本

    如果应用在 2.x 切换期必须留在 1.x,用 @1 安装;1.x 也保留在 npm 的 legacy 标签上,预发布在 legacy-next。

    pnpm add markstream-vue@1
  5. 5SSR 预解析节点

    在服务端或 Worker 里先解析成结构化节点,把 nodes 传给客户端渲染,可避免客户端解析并保持 SSR/水合结果确定。

    // server or worker
    import { getMarkdown, parseMarkdownToStructure } from 'markstream-vue'
    
    const md = getMarkdown()
    const nodes = parseMarkdownToStructure('# Hello\n\nThis is parsed once', md)
    // send `nodes` JSON to the client
    
    const nodes = parseMarkdownToStructure(source, md, { final: true })
  6. 6客户端渲染节点

    客户端直接接收服务端传来的 nodes 渲染,不再自行解析 Markdown,适合需要确定性输出的场景。

    <MarkdownRender :nodes="nodesFromServer" />

关键配置

配置项必填说明示例
mode是渲染模式,示例中聊天流式场景使用 chatchat
content是要渲染的 Markdown 内容,可随流式输出不断更新content
final否标记内容是否已结束输出,用于切换最终解析语义isDone
nodes否SSR/Worker 预解析好的节点,传入后组件不再自行解析nodesFromServer
parse-options.streamParse否控制流式解析策略,可选 true / false / 'auto'{ streamParse: 'auto' }

如何确认成功

页面上出现正确的 Markdown 渲染结果,内容随流式输出逐步更新且无明显抖动,HTML/CSS 样式正常。

常见问题

Q:我的项目是 React / Svelte / Angular,能装这个包吗?

A:不能直接用。markstream-vue 只面向 Vue 3 / Nuxt / VitePress,其他框架请使用 Markstream 家族的对应兄弟包。

Q:代码块和 diff 渲染不够强怎么办?

A:按需额外安装可选的 stream-diffs peer 依赖,README 说明只在需要增强的代码块和 diff 块时安装它。

Q:如何避免流式解析结果残留或不一致?

A:当 final 变化时渲染器会作废流缓存并按最终语义重新解析;也可显式传 parse-options,把最终内容解析交回常规解析器或完全关闭流式解析。

Q:复用同一个 md 实例解析无关文档要注意什么?

A:parseMarkdownToStructure 默认 streamParse 为 'auto',会保留最新 source/token 缓存;解析一次性文档时请传 { final: true } 或 { streamParse: false }。

注意事项

  • 2.x 是 npm latest 稳定线,1.x 保留在 legacy 标签、预发布在 legacy-next,跨 2.x 升级可参考官方 1.x→2.0 迁移指南。
  • MarkdownRender 自己解析 content 时,parseOptions.streamParse 默认是 true;如需最终内容走常规解析,传 'auto' 或 false。
  • 代码块运行时在 2.0 有变化,从 1.x 升级前先看迁移指南再动手。
  • 安装命令要按自己项目的包管理器替换,README 同时给出了 pnpm 与 npm 两种写法。

核心亮点

  • 支持 Vue、React、Svelte、Angular 多框架,一套逻辑复用
  • 内置 Mermaid、KaTeX、Shiki 等常用组件,开箱即用
  • 低抖动更新机制,适合高频流式输出场景

不足之处

  • 文档/社区待观察

适用场景

  • AI 聊天机器人流式回复渲染
  • AI 生成文档或报告的实时预览
  • 多框架团队统一渲染方案选型

替代项目

react-markdown、marked、markdown-it

上一篇:langgraphjs

下一篇:graph-of-thoughts

同类项目推荐

Text2Sql.Net 开源

用大白话问数据库,自动生成SQL,提升查询效率

Text2Sql.Net 是一个使用DotNet和Semantic Kernel开发的Text2Sql工具

★ 139 2026-08-09
soorgeon 开源

一键把 Jupyter 笔记本变成生产级数据管道

Convert monolithic Jupyter notebooks into maintainable Ploomber pipelines.

★ 81 2026-08-09
git-ape 开源

让 AI 智能体安全接入你的 Git 工作流

platform engineering framework for the agentic age

★ 279 2026-10-13
genaiops-promptflow-template 开源

用 Prompt Flow 模板,快速搭建 LLM 应用的 DevOps 流水线

GenAIOps with Prompt Flow is a "GenAIOps template and guidance" to help you build LL···

★ 369 2026-08-09
ComfyUI-MultiGPU 开源

一键扩展显存,多卡并行跑大模型,低配也能生成高清视频。

This custom_node for ComfyUI adds one-click "Virtual VRAM" for any UNet and CLIP loa···

★ 994 2026-08-09
java-genai 开源

Java 后端直接调用 Gemini,官方 SDK 免手写封装

Google Gen AI Java SDK provides an interface for developers to integrate Google's ge···

★ 399 2026-10-19
skillware 开源

像管理软件包一样管理 AI 技能,让智能体能力随需组合。

A Python framework for modular, self-contained skill management for machines.

★ 179 2026-08-09
raxol 开源

一套代码,终端、浏览器、智能体三端通吃

One Elixir module, every surface. The terminal for your Gundam.

★ 81 2026-08-09