diff --git a/src/renderer/src/pages/home/Markdown/Markdown.tsx b/src/renderer/src/pages/home/Markdown/Markdown.tsx index ad643f2859..1112e8f275 100644 --- a/src/renderer/src/pages/home/Markdown/Markdown.tsx +++ b/src/renderer/src/pages/home/Markdown/Markdown.tsx @@ -2,7 +2,7 @@ import 'katex/dist/katex.min.css' import { useSettings } from '@renderer/hooks/useSettings' import { Message } from '@renderer/types' -import { escapeBrackets, removeSvgEmptyLines, withGeminiGrounding } from '@renderer/utils/formats' +import { escapeBrackets, fixPunctuation, removeSvgEmptyLines, withGeminiGrounding } from '@renderer/utils/formats' import { isEmpty } from 'lodash' import { FC, useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -34,8 +34,10 @@ const Markdown: FC = ({ message }) => { const messageContent = useMemo(() => { const empty = isEmpty(message.content) const paused = message.status === 'paused' - const content = empty && paused ? t('message.chat.completion.paused') : withGeminiGrounding(message) - return removeSvgEmptyLines(escapeBrackets(content)) + let content = empty && paused ? t('message.chat.completion.paused') : withGeminiGrounding(message) + content = removeSvgEmptyLines(escapeBrackets(content)) + content = fixPunctuation(content) + return content }, [message, t]) const rehypePlugins = useMemo(() => { diff --git a/src/renderer/src/utils/formats.ts b/src/renderer/src/utils/formats.ts index be0e37ba97..bb2f9253b7 100644 --- a/src/renderer/src/utils/formats.ts +++ b/src/renderer/src/utils/formats.ts @@ -107,3 +107,11 @@ export function withMessageThought(message: Message) { return message } + +export function fixPunctuation(text: string): string { + // 将网页链接后的中文标点符号与链接分开 + return text.replace( + /(https?:\/\/[^\s)]+)(\p{P})/gu, + `$1$2` + ) +}