mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-06 21:35:52 +08:00
fix: 网页链接附带中文标点解析错误
This commit is contained in:
parent
160872e1c4
commit
eb9edc10b8
@ -2,7 +2,7 @@ import 'katex/dist/katex.min.css'
|
|||||||
|
|
||||||
import { useSettings } from '@renderer/hooks/useSettings'
|
import { useSettings } from '@renderer/hooks/useSettings'
|
||||||
import { Message } from '@renderer/types'
|
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 { isEmpty } from 'lodash'
|
||||||
import { FC, useMemo } from 'react'
|
import { FC, useMemo } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
@ -34,8 +34,10 @@ const Markdown: FC<Props> = ({ message }) => {
|
|||||||
const messageContent = useMemo(() => {
|
const messageContent = useMemo(() => {
|
||||||
const empty = isEmpty(message.content)
|
const empty = isEmpty(message.content)
|
||||||
const paused = message.status === 'paused'
|
const paused = message.status === 'paused'
|
||||||
const content = empty && paused ? t('message.chat.completion.paused') : withGeminiGrounding(message)
|
let content = empty && paused ? t('message.chat.completion.paused') : withGeminiGrounding(message)
|
||||||
return removeSvgEmptyLines(escapeBrackets(content))
|
content = removeSvgEmptyLines(escapeBrackets(content))
|
||||||
|
content = fixPunctuation(content)
|
||||||
|
return content
|
||||||
}, [message, t])
|
}, [message, t])
|
||||||
|
|
||||||
const rehypePlugins = useMemo(() => {
|
const rehypePlugins = useMemo(() => {
|
||||||
|
|||||||
@ -107,3 +107,11 @@ export function withMessageThought(message: Message) {
|
|||||||
|
|
||||||
return message
|
return message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function fixPunctuation(text: string): string {
|
||||||
|
// 将网页链接后的中文标点符号与链接分开
|
||||||
|
return text.replace(
|
||||||
|
/(https?:\/\/[^\s)]+)(\p{P})/gu,
|
||||||
|
`<a href="$1" target="_blank" rel="noreferrer">$1</a><span style="margin-left: 0.2em;">$2</span>`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user