Files
deer-flow/frontend/src/core/streamdown/plugins.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

2026-01-30 16:41:18 +08:00
import rehypeKatex from "rehype-katex";
import remarkGfm from "remark-gfm";
import remarkMath from "remark-math";
import type { StreamdownProps } from "streamdown";
import { rehypeSplitWordsIntoSpans } from "../rehype";
2026-01-30 16:41:18 +08:00
export const streamdownPlugins = {
remarkPlugins: [
remarkGfm,
[remarkMath, { singleDollarTextMath: true }],
2026-01-30 16:41:18 +08:00
] as StreamdownProps["remarkPlugins"],
rehypePlugins: [
[rehypeKatex, { output: "html" }],
] as StreamdownProps["rehypePlugins"],
};
export const streamdownPluginsWithWordAnimation = {
remarkPlugins: [
remarkGfm,
[remarkMath, { singleDollarTextMath: true }],
] as StreamdownProps["remarkPlugins"],
rehypePlugins: [
[rehypeKatex, { output: "html" }],
rehypeSplitWordsIntoSpans,
] as StreamdownProps["rehypePlugins"],
};
// Plugins for human messages - no autolink to prevent URL bleeding into adjacent text
export const humanMessagePlugins = {
remarkPlugins: [
// Use remark-gfm without autolink literals by not including it
// Only include math support for human messages
[remarkMath, { singleDollarTextMath: true }],
] as StreamdownProps["remarkPlugins"],
rehypePlugins: [
[rehypeKatex, { output: "html" }],
] as StreamdownProps["rehypePlugins"],
};