|
@@ -39,6 +39,11 @@ const getCorrectCapitalizationLanguageName = (language: string) => {
|
|
|
|
|
|
return language.charAt(0).toUpperCase() + language.substring(1)
|
|
|
}
|
|
|
+
|
|
|
+const preprocessLaTeX = (content: string) =>
|
|
|
+ content.replace(/\\\[(.*?)\\\]/gs, (_, equation) => `$$${equation}$$`)
|
|
|
+ .replace(/\\\((.*?)\\\)/gs, (_, equation) => `$${equation}$`)
|
|
|
+
|
|
|
export function PreCode(props: { children: any }) {
|
|
|
const ref = useRef<HTMLPreElement>(null)
|
|
|
|
|
@@ -82,12 +87,13 @@ const useLazyLoad = (ref: RefObject<Element>): boolean => {
|
|
|
|
|
|
export function Markdown(props: { content: string; className?: string }) {
|
|
|
const [isSVG, setIsSVG] = useState(false)
|
|
|
+ const latexContent = preprocessLaTeX(props.content)
|
|
|
return (
|
|
|
<div className={cn(props.className, 'markdown-body')}>
|
|
|
<ReactMarkdown
|
|
|
remarkPlugins={[[RemarkMath, { singleDollarTextMath: false }], RemarkGfm, RemarkBreaks]}
|
|
|
rehypePlugins={[
|
|
|
- RehypeKatex,
|
|
|
+ RehypeKatex as any,
|
|
|
]}
|
|
|
components={{
|
|
|
code({ inline, className, children, ...props }) {
|
|
@@ -179,7 +185,7 @@ export function Markdown(props: { content: string; className?: string }) {
|
|
|
linkTarget='_blank'
|
|
|
>
|
|
|
{/* Markdown detect has problem. */}
|
|
|
- {props.content}
|
|
|
+ {latexContent}
|
|
|
</ReactMarkdown>
|
|
|
</div>
|
|
|
)
|