mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-18 09:24:03 +00:00
link text
This commit is contained in:
@@ -3,12 +3,13 @@ import { Box } from '@chakra-ui/react';
|
|||||||
|
|
||||||
const regex = /((http|https|ftp):\/\/[^\s\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]+)/gi;
|
const regex = /((http|https|ftp):\/\/[^\s\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]+)/gi;
|
||||||
|
|
||||||
const Link = ({ href }: { href?: string }) => {
|
const Link = (props: { href?: string; children?: React.ReactNode[] }) => {
|
||||||
const decText = decodeURIComponent(href || '');
|
const decText = decodeURIComponent(props.href || '');
|
||||||
const replaceText = decText.replace(regex, (match, p1) => {
|
const replaceText = decText.replace(regex, (match, p1) => {
|
||||||
|
const text = decText === props.children?.[0] ? p1 : props.children?.[0];
|
||||||
const isInternal = /^\/#/i.test(p1);
|
const isInternal = /^\/#/i.test(p1);
|
||||||
const target = isInternal ? '_self' : '_blank';
|
const target = isInternal ? '_self' : '_blank';
|
||||||
return `<a href="${p1}" target=${target}>${p1}</a>`;
|
return `<a href="${p1}" target=${target}>${text}</a>`;
|
||||||
});
|
});
|
||||||
|
|
||||||
return <Box as={'span'} dangerouslySetInnerHTML={{ __html: replaceText }} />;
|
return <Box as={'span'} dangerouslySetInnerHTML={{ __html: replaceText }} />;
|
||||||
|
Reference in New Issue
Block a user