Skip to content

Markstream 框架包

Markstream 是一组面向 AI 应用的流式 Markdown 渲染器,覆盖 Vue、React、Svelte、Angular、Nuxt 和 Next.js。各框架包共享同一套流式 Markdown 思路:直接传入 content,或在高频流式输出里外部解析成 nodes;重型块如 Mermaid、KaTeX、代码块和长文档虚拟化按需启用。

按框架选择

框架推荐包状态安装先看
Vue 3 / Nuxt / VitePressmarkstream-vuestablepnpm add markstream-vueVue / Nuxt
React / Next.js / Remixmarkstream-reactbetapnpm add markstream-reactReact / Next.js
Svelte 5markstream-sveltebetapnpm add markstream-svelte svelte@^5Svelte
Angular standalonemarkstream-angularalphapnpm add markstream-angularAngular
Vue 2.6 / 2.7markstream-vue2compatibilitypnpm add markstream-vue2Vue 2 快速开始
只要解析器stream-markdown-parserstablepnpm add stream-markdown-parser解析器 API

按场景选择

场景推荐包原因
Vue AI 聊天markstream-vue最成熟的渲染器,Vue/Nuxt 文档最完整
React AI 聊天markstream-react面向 React 流式渲染和 react-markdown 迁移
Next.js SSR-first Markdownmarkstream-react/next先输出服务端 HTML,再做客户端增强
Svelte 5 AI 聊天markstream-svelteSvelte 5 渲染器,复用 Markstream parser 行为
Angular standalone 应用markstream-angularAngular 20+ standalone component
只要 parser 管线stream-markdown-parser输出结构化 nodes,不绑定 UI runtime

包成熟度

成熟度说明
markstream-vuestable主线渲染器,文档最完整
stream-markdown-parserstablerenderer 共享的 parser-only 包
markstream-reactbetaReact 与 Next.js 入口分开说明
markstream-sveltebeta / experimental仅支持 Svelte 5
markstream-angularalphaAngular standalone component
markstream-vue2compatibilityVue 2.6 / 2.7 兼容包

如果只是把短静态 Markdown 转成 HTML,markedmarkdown-it 或框架生态里的普通 Markdown 组件通常更轻。Markstream 的价值在流式场景:LLM token 流、SSE/WebSocket、未闭合代码块、长回答、渐进 Mermaid 和需要稳定 DOM 的 AI 聊天界面。

最小示例

vue
<script setup>
import MarkdownRender from 'markstream-vue'
import 'markstream-vue/index.css'
</script>

<template>
  <MarkdownRender mode="chat" :content="content" :final="isDone" />
</template>
tsx
import MarkdownRender from 'markstream-react'
import 'markstream-react/index.css'

export function Message({ content, isDone }: { content: string, isDone: boolean }) {
  return <MarkdownRender content={content} final={isDone} fade={false} />
}
svelte
<script lang="ts">
  import MarkdownRender from 'markstream-svelte'
  import 'markstream-svelte/index.css'
</script>

<MarkdownRender {content} final={isDone} />
ts
import { Component, signal } from '@angular/core'
import { MarkstreamAngularComponent } from 'markstream-angular'
import 'markstream-angular/index.css'

@Component({
  selector: 'app-message',
  imports: [MarkstreamAngularComponent],
  template: '<markstream-angular [content]="content()" [final]="true" />',
})
export class MessageComponent {
  content = signal('# Hello from Markstream')
}

常见问题

Markstream 只是 Vue 库吗?

不是。markstream-vue 是最成熟的包,但 Markstream 也有 React、Svelte、Angular、Vue 2、Next.js 和 parser-only 入口。

应该用 Markstream 还是 marked / markdown-it?

只需要 markdown -> HTML 时,用 markedmarkdown-it 更直接。需要框架组件渲染、流式中间态稳定性或 AI 聊天体验时,用 Markstream。

应该用 markstream-react 还是 react-markdown?

短静态 React Markdown 或成熟 remark/rehype 插件链优先继续评估 react-markdown。流式 AI 输出、未闭合语法、长回答、渐进 Mermaid 或多框架一致行为优先看 markstream-react

哪些包是稳定的?

markstream-vuestream-markdown-parser 是 stable。markstream-react 是 beta,markstream-svelte 是 beta / experimental,markstream-angular 是 alpha,markstream-vue2 是兼容包。

常用下一步

bash
pnpm add markstream-vue
pnpm add markstream-react
pnpm add markstream-svelte svelte@^5
pnpm add markstream-angular

需要最小可运行示例时看 多框架快速开始。如果你已经确定框架,直接进入对应页面会更快。