Markstream Vue 2 CLI
Use this skill when the host app is Vue 2 on Vue CLI or another Webpack 4-style stack.
Workflow
- Confirm the repo uses Vue 2 plus Vue CLI or Webpack 4-era tooling.
- Install
markstream-vue2and only the peers required for the requested features. - Import
markstream-vue2/dist/index.cssin the app shell. - Avoid Vite-style
?workerimports.- Use
createKaTeXWorkerFromCDN(...)andcreateMermaidWorkerFromCDN(...)when workers are needed.
- Use
- Prefer stable code block defaults over brittle Monaco wiring.
MarkdownCodeBlockNodeplusstream-markdownis safer than Monaco in Webpack 4-era repos.- For AI chat or streaming UIs, keep
contentand use built-in smooth streaming first.smooth-streaming="auto"is the default and activates whentypewriter=trueormax-live-nodes <= 0.typewriteronly controls the blinking cursor and defaults tofalse.fadecontrols node enter and streamed-text fade animations and defaults totrue.
- Streaming vs recovering history: in chat UIs the same
MarkdownRenderstarts streaming and later switches to history whenfinal=true.- Streaming:
smooth-streaming="auto",:fade="false",typewriter=true. Smooth pacing handles gradual appearance; fade would flicker. - Recovering history:
:smooth-streaming="false",:fade="true",typewriter=false. Content is already complete — pacing would slow it down, but fade gives a polished entry animation. - Dynamic switch:
:smooth-streaming="isStreaming ? 'auto' : false",:fade="!isStreaming".
- Streaming:
- Move to
nodes+finalonly for worker-preparsed content, shared AST stores, or custom AST control. - Remember that
html-policynow defaults tosafe, and Mermaid strict mode is on by default throughmermaid-props.
- Validate with the smallest useful local dev or build command.
Default Decisions
- Treat Monaco and worker-heavy setups as opt-in and fragile on Webpack 4.
- Prefer CDN workers over bundler workers for Mermaid and KaTeX.
- Keep the Vue 2 composition-api shim explicit when the repo is on Vue 2.6.
- Keep
html-policy="safe"and Mermaid strict mode unless the task is preserving trusted legacy rendering. - If a trusted surface needs older behavior, use
html-policy="trusted"and:mermaid-props="{ isStrict: false }"only on that surface and explain why.
Useful Doc Targets
docs/guide/vue2-quick-start.mddocs/guide/vue2-installation.mddocs/guide/troubleshooting.md