SuperAPI AI 工具集

markstream-vue2-cli

前端与建站

查看项目

更新于 10-16 02:16

技能介绍

用途

markstream-vue2-cli 用于在宿主应用为 Vue 2、并使用 Vue CLI 或其他 Webpack 4 风格构建栈时,集成 markstream-vue2。

主要能力与工作流程

  • 确认仓库使用 Vue 2 加 Vue CLI 或 Webpack 4 时代的工具链。
  • 安装 markstream-vue2,并只安装所需功能对应的 peer 依赖。
  • 在应用外壳中导入 markstream-vue2/dist/index.css。
  • 避免使用 Vite 风格的 ?worker 导入。
  • 需要 worker 时使用 createKaTeXWorkerFromCDN(...) 和 createMermaidWorkerFromCDN(...)。
  • 优先使用稳定的代码块默认值,而非脆弱的接线方式。
  • 在 Webpack 4 时代的仓库中,stream-diffs(或普通 <pre>)是唯一的代码块运行时——没有 Monaco/stream-monaco 回退,也没有 MarkdownCodeBlockNode。
  • 使用顶层 code-block-options 或直接使用 CodeBlockNode.code-block-options 来应用共享的渲染器无关选项契约。将 header/toolbar 相关 props 保留在 code-block-props 中。

流式与历史内容

对于 AI 聊天或流式 UI,优先保留内容并使用内置的平滑流式。

  • smooth-streaming="auto" 是默认值,当 typewriter=true 或 max-live-nodes <= 0 时激活。
  • typewriter 只控制闪烁光标,默认值为 false。
  • fade 控制节点进入和流式文本的淡入动画,默认值为 true。

流式与恢复历史:在聊天 UI 中,同一个 MarkdownRender 先进行流式输出,当 final=true 时切换为历史内容。

  • 流式:smooth-streaming="auto"、:fade="false"、typewriter=true。这是一种保守的视觉/性能选择,并非 API 不兼容。该适配器尚未采用 Vue 3 的有界追加淡入,因此在同时启用两者之前请先验证其动画行为。
  • 恢复历史::smooth-streaming="false"、:fade="true"、typewriter=false。内容已经完整——节流会拖慢它,但 fade 能带来更精致的进入动画。
  • 动态切换::smooth-streaming="isStreaming ? 'auto' : false"、:fade="!isStreaming"。

只有在处理 worker 预处理内容、共享 AST store 或自定义 AST 控制时,才转为 nodes + final 方式。

默认决策与限制

  • 注意 html-policy 现在默认安全,Mermaid 严格模式通过 mermaid-props 默认开启。
  • 使用最小可用的本地开发或构建命令进行验证。
  • 代码块增强不再依赖 Monaco;worker 密集的配置仅适用于 Mermaid/KaTeX CDN worker。
  • 对于 Mermaid 和 KaTeX,优先使用 CDN worker 而非打包器 worker。
  • 当仓库使用 Vue 2.6 时,保持显式的 Vue 2 composition-api shim。
  • 除非任务是保留受信任的旧版渲染,否则保持 html-policy="safe" 和 Mermaid 严格模式。
  • 如果受信任的界面需要旧行为,仅在该界面使用 html-policy="trusted" 和 :mermaid-props="{ isStrict: false }",并说明原因。

相关文档

docs/guide/vue2-quick-start.md docs/guide/vue2-installation.md docs/guide/troubleshooting.md