diff --git a/components/markdown.tsx b/components/markdown.tsx index da8f04fae..442c0d5ff 100644 --- a/components/markdown.tsx +++ b/components/markdown.tsx @@ -1,7 +1,10 @@ +import 'katex/dist/katex.min.css'; import Link from 'next/link'; import React, { memo, useMemo, useState } from 'react'; import ReactMarkdown, { type Components } from 'react-markdown'; import remarkGfm from 'remark-gfm'; +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; import { CodeBlock } from './code-block'; const components: Partial = { @@ -93,17 +96,26 @@ const components: Partial = { }, }; -const remarkPlugins = [remarkGfm]; - const NonMemoizedMarkdown = ({ children }: { children: string }) => { + // Replace LaTeX delimiters with delimiters supported by rehype-katex. + const processedText = children + .replace(/\\\[/g, `$$$`) + .replace(/\\\]/g, `$$$`) + .replace(/\\\(/g, `$$$`) + .replace(/\\\)/g, `$$$`); + return ( - - {children} + + {processedText} ); }; export const Markdown = memo( NonMemoizedMarkdown, - (prevProps, nextProps) => prevProps.children === nextProps.children, + (prevProps, nextProps) => prevProps.children === nextProps.children ); diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 338e7f8d7..74b1644a7 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -15,15 +15,17 @@ const TooltipContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, sideOffset = 4, ...props }, ref) => ( - + + + )); TooltipContent.displayName = TooltipPrimitive.Content.displayName;