Files
Netcatty/components/ai-elements/hasMarkdownCodeFence.ts
T
bincxz b02d52516c fix(ai): load Streamdown without Shiki until a code fence is idle
messageResponse pulled @streamdown/code on first markdown import, so
opening a chat with history paid for the full highlighter even when
the reply was just prose.

Render with CJK only first. When a fence exists and the composer is
idle, lazily import the isolated Shiki plugin.
2026-08-15 03:03:38 +08:00

7 lines
220 B
TypeScript

const FENCE_RE = /(?:^|\n)\s{0,3}(`{3,}|~{3,})/;
/** True when markdown contains a fenced code block that may want Shiki. */
export function hasMarkdownCodeFence(text: string): boolean {
return FENCE_RE.test(text);
}