fix: frontend for <think> tags conflicting with original <details> tags (#14039)

This commit is contained in:
Junjie.M 2025-02-19 22:04:11 +08:00 committed by GitHub
parent 3f34b8b0d1
commit d96c368660
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 6 deletions

View File

@ -68,6 +68,9 @@ export const ThinkBlock = ({ children, ...props }: any) => {
const displayContent = removeEndThink(children) const displayContent = removeEndThink(children)
const { t } = useTranslation() const { t } = useTranslation()
if (!(props['data-think'] ?? false))
return (<details {...props}>{children}</details>)
return ( return (
<details {...(!isComplete && { open: true })} className="group"> <details {...(!isComplete && { open: true })} className="group">
<summary className="text-gray-500 font-bold list-none pl-2 flex items-center cursor-pointer select-none whitespace-nowrap"> <summary className="text-gray-500 font-bold list-none pl-2 flex items-center cursor-pointer select-none whitespace-nowrap">

View File

@ -68,13 +68,9 @@ const preprocessLaTeX = (content: string) => {
} }
const preprocessThinkTag = (content: string) => { const preprocessThinkTag = (content: string) => {
if (!(content.trim().startsWith('<think>\n') || content.trim().startsWith('<details style=')))
return content
return flow([ return flow([
(str: string) => str.replaceAll('<think>\n', '<details>\n'), (str: string) => str.replace('<think>\n', '<details data-think=true>\n'),
(str: string) => str.replaceAll('\n</think>', '\n[ENDTHINKFLAG]</details>'), (str: string) => str.replace('\n</think>', '\n[ENDTHINKFLAG]</details>'),
(str: string) => str.replaceAll('\n</details>', '\n[ENDTHINKFLAG]</details>'),
])(content) ])(content)
} }