From d4d9e1fe658724c8dfdc386e0ea6c0f9f233c1ab Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Mon, 14 Aug 2023 10:21:20 +0800
Subject: [PATCH] fix: markdonw link
---
client/src/components/Markdown/Link.tsx | 32 ------------------------
client/src/components/Markdown/index.tsx | 3 +--
2 files changed, 1 insertion(+), 34 deletions(-)
delete mode 100644 client/src/components/Markdown/Link.tsx
diff --git a/client/src/components/Markdown/Link.tsx b/client/src/components/Markdown/Link.tsx
deleted file mode 100644
index b212f4595..000000000
--- a/client/src/components/Markdown/Link.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import React, { useMemo } from 'react';
-import { Box } from '@chakra-ui/react';
-import Image from './img/Image';
-
-const regex = /((http|https|ftp):\/\/[^\s\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]+)/gi;
-
-const Link = (props: { href?: string; children?: any }) => {
- const Html = useMemo(() => {
- const decText = decodeURIComponent(props.href || '');
-
- return decText.replace(regex, (match, p1) => {
- let text = decText === props.children?.[0] ? p1 : props.children?.[0];
- const isInternal = /^\/#/i.test(p1);
- const target = isInternal ? '_self' : '_blank';
-
- if (props?.children?.[0]?.props?.node?.tagName === 'img') {
- // eslint-disable-next-line @next/next/no-img-element
- text = `
`;
- }
-
- return `${text}`;
- });
- }, [props.children, props.href]);
-
- return typeof Html === 'string' ? (
-
- ) : (
- Html
- );
-};
-
-export default React.memo(Link);
diff --git a/client/src/components/Markdown/index.tsx b/client/src/components/Markdown/index.tsx
index 5134a076a..edd310ba8 100644
--- a/client/src/components/Markdown/index.tsx
+++ b/client/src/components/Markdown/index.tsx
@@ -9,7 +9,6 @@ import 'katex/dist/katex.min.css';
import styles from './index.module.scss';
import dynamic from 'next/dynamic';
-import Link from './Link';
import CodeLight from './CodeLight';
const MermaidCodeBlock = dynamic(() => import('./img/MermaidCodeBlock'));
@@ -50,7 +49,6 @@ const Markdown = ({
}) => {
const components = useMemo(
() => ({
- a: Link,
img: Image,
pre: 'div',
p: 'div',
@@ -68,6 +66,7 @@ const Markdown = ({
rehypePlugins={[RehypeKatex]}
// @ts-ignore
components={components}
+ linkTarget={'_blank'}
>
{source}