Sfoglia il codice sorgente

Merge pull request #4186 from MrrDrr/formula_rendering

support \(...\) and \[...\] style math formula
DeanYao 1 anno fa
parent
commit
a4e4286e04
1 ha cambiato i file con 19 aggiunte e 1 eliminazioni
  1. 19 1
      app/components/markdown.tsx

+ 19 - 1
app/components/markdown.tsx

@@ -116,9 +116,27 @@ function escapeDollarNumber(text: string) {
   return escapedText;
 }
 
+function escapeBrackets(text: string) {
+  const pattern =
+    /(```[\s\S]*?```|`.*?`)|\\\[([\s\S]*?[^\\])\\\]|\\\((.*?)\\\)/g;
+  return text.replace(
+    pattern,
+    (match, codeBlock, squareBracket, roundBracket) => {
+      if (codeBlock) {
+        return codeBlock;
+      } else if (squareBracket) {
+        return `$$${squareBracket}$$`;
+      } else if (roundBracket) {
+        return `$${roundBracket}$`;
+      }
+      return match;
+    },
+  );
+}
+
 function _MarkDownContent(props: { content: string }) {
   const escapedContent = useMemo(
-    () => escapeDollarNumber(props.content),
+    () => escapeBrackets(escapeDollarNumber(props.content)),
     [props.content],
   );