@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
46 lines (43 loc) • 1.52 kB
JavaScript
'use client';
import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs";
import { remarkBr } from "../../Markdown/plugins/remarkBr.mjs";
import { remarkCustomFootnotes } from "../../Markdown/plugins/remarkCustomFootnotes.mjs";
import { remarkGfmPlus } from "../../Markdown/plugins/remarkGfmPlus.mjs";
import { remarkVideo } from "../../Markdown/plugins/remarkVideo.mjs";
import { useMemo } from "react";
import remarkBreaks from "remark-breaks";
import remarkCjkFriendly from "remark-cjk-friendly";
import remarkGfm from "remark-gfm";
import remarkMath from "remark-math";
//#region src/hooks/useMarkdown/useMarkdownRemarkPlugins.ts
const useMarkdownRemarkPlugins = () => {
const { enableLatex, enableCustomFootnotes, remarkPlugins = [], remarkPluginsAhead = [], variant, allowHtml } = useMarkdownContext();
const isChatMode = variant === "chat";
const memoPlugins = useMemo(() => [
remarkCjkFriendly,
enableLatex && remarkMath,
[remarkGfm, { singleTilde: false }],
!allowHtml && remarkBr,
!allowHtml && remarkGfmPlus,
!allowHtml && remarkVideo,
enableCustomFootnotes && remarkCustomFootnotes,
isChatMode && remarkBreaks
].filter(Boolean), [
allowHtml,
isChatMode,
enableLatex,
enableCustomFootnotes
]);
return useMemo(() => [
...remarkPluginsAhead,
...memoPlugins,
...remarkPlugins
], [
remarkPlugins,
memoPlugins,
remarkPluginsAhead
]);
};
//#endregion
export { useMarkdownRemarkPlugins };
//# sourceMappingURL=useMarkdownRemarkPlugins.mjs.map