{"version":3,"file":"useMarkdownRemarkPlugins.mjs","names":[],"sources":["../../../src/hooks/useMarkdown/useMarkdownRemarkPlugins.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport remarkBreaks from 'remark-breaks';\nimport remarkCjkFriendly from 'remark-cjk-friendly';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\nimport type { Pluggable } from 'unified';\n\nimport { useMarkdownContext } from '@/Markdown/components/MarkdownProvider';\nimport { remarkBr } from '@/Markdown/plugins/remarkBr';\nimport { remarkCustomFootnotes } from '@/Markdown/plugins/remarkCustomFootnotes';\nimport { remarkGfmPlus } from '@/Markdown/plugins/remarkGfmPlus';\nimport { remarkVideo } from '@/Markdown/plugins/remarkVideo';\n\nexport const useMarkdownRemarkPlugins = (): Pluggable[] => {\n  const {\n    enableLatex,\n    enableCustomFootnotes,\n    remarkPlugins = [],\n    remarkPluginsAhead = [],\n    variant,\n    allowHtml,\n  } = useMarkdownContext();\n\n  const isChatMode = variant === 'chat';\n\n  const memoPlugins = useMemo(\n    () =>\n      [\n        remarkCjkFriendly,\n        // Parse math before GFM so that '|' inside $...$ isn't treated as a table separator\n        enableLatex && remarkMath,\n        [remarkGfm, { singleTilde: false }],\n        !allowHtml && remarkBr,\n        !allowHtml && remarkGfmPlus,\n        !allowHtml && remarkVideo,\n        enableCustomFootnotes && remarkCustomFootnotes,\n        isChatMode && remarkBreaks,\n      ].filter(Boolean) as Pluggable[],\n    [allowHtml, isChatMode, enableLatex, enableCustomFootnotes],\n  );\n\n  return useMemo(\n    () => [...remarkPluginsAhead, ...memoPlugins, ...remarkPlugins],\n    [remarkPlugins, memoPlugins, remarkPluginsAhead],\n  );\n};\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,iCAA8C;CACzD,MAAM,EACJ,aACA,uBACA,gBAAgB,CAAC,GACjB,qBAAqB,CAAC,GACtB,SACA,cACE,mBAAmB;CAEvB,MAAM,aAAa,YAAY;CAE/B,MAAM,cAAc,cAEhB;EACE;EAEA,eAAe;EACf,CAAC,WAAW,EAAE,aAAa,MAAM,CAAC;EAClC,CAAC,aAAa;EACd,CAAC,aAAa;EACd,CAAC,aAAa;EACd,yBAAyB;EACzB,cAAc;CAChB,CAAC,CAAC,OAAO,OAAO,GAClB;EAAC;EAAW;EAAY;EAAa;CAAqB,CAC5D;CAEA,OAAO,cACC;EAAC,GAAG;EAAoB,GAAG;EAAa,GAAG;CAAa,GAC9D;EAAC;EAAe;EAAa;CAAkB,CACjD;AACF"}