用途
markstream-vue2-vite 用于在宿主应用为 Vue 2、打包器为 Vite 的场景下,把 markstream-vue2 集成进项目。当 Codex 需要处理 Vite 友好的 worker 导入、为 Mermaid 等依赖配置 ?worker 或 ?worker&inline 时,可使用该技能。
主要能力与工作流程
- 确认仓库是 Vue 2 且使用基于 Vite 的工具链。
- 安装 markstream-vue2,并只安装被请求的可选 peer 依赖。
- 在 reset 样式之后引入
markstream-vue2/index.css。 - 当仓库需要打包 worker 时,使用 Vite worker 导入;此处允许
markstream-vue2/workers/...配合?worker或?worker&inline模式。 - 对 Vue 2.6 仓库,明确 Composition API 的取舍决策。
- 对 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。内容已完整,节奏控制会拖慢它,但淡入可提供精致的进入动画。 - 动态切换:
:smooth-streaming="isStreaming ? 'auto' : false"、:fade="!isStreaming"。 - 仅当内容由 worker 预解析、使用共享 AST store 或需要自定义 AST 控制时,才改用 nodes + final。
安全与默认决策
- 记住
html-policy现在默认为safe,Mermaid 通过mermaid-props默认开启 strict 模式。 - 在基于 Vite 的 Vue 2 仓库中,优先使用打包 worker 而非 CDN worker。
- 保持 UnoCSS 或 Tailwind 的 reset 在 Markstream CSS 之前。
- 仅当打包器特定选择无关紧要时,才使用通用的 markstream-vue2 技能。
- 除非任务是保留可信的旧版渲染,否则保持
html-policy="safe"与 Mermaid strict 模式。 - 如果某个可信界面需要旧行为,仅在该界面使用
html-policy="trusted"与:mermaid-props="{ isStrict: false }",并说明原因。
验证与文档
- 使用最小可用的 Vite dev 或 build 命令进行验证。
- 相关文档目标:
docs/guide/vue2-quick-start.md、docs/guide/vue2-installation.md、docs/guide/tailwind.md、docs/guide/troubleshooting.md。
适用场景与限制
适用于 Vue 2 + Vite 项目集成 markstream-vue2,尤其是需要打包 worker、处理 Mermaid、构建 AI 聊天或流式 Markdown 渲染界面的情况。限制方面:该适配器尚未采用 Vue 3 的有界追加淡入,同时启用相关动画前需自行验证;Composition API 在 Vue 2.6 仓库中需显式决策;安全策略默认收紧,放宽需限定在可信界面并说明理由。