Browse Source

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

tags/1.0.0
Junjie.M 8 months ago
parent
commit
d96c368660
No account linked to committer's email address

+ 3
- 0
web/app/components/base/markdown-blocks/think-block.tsx View File

@@ -68,6 +68,9 @@ export const ThinkBlock = ({ children, ...props }: any) => {
const displayContent = removeEndThink(children)
const { t } = useTranslation()

if (!(props['data-think'] ?? false))
return (<details {...props}>{children}</details>)

return (
<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">

+ 2
- 6
web/app/components/base/markdown.tsx View File

@@ -68,13 +68,9 @@ const preprocessLaTeX = (content: string) => {
}

const preprocessThinkTag = (content: string) => {
if (!(content.trim().startsWith('<think>\n') || content.trim().startsWith('<details style=')))
return content

return flow([
(str: string) => str.replaceAll('<think>\n', '<details>\n'),
(str: string) => str.replaceAll('\n</think>', '\n[ENDTHINKFLAG]</details>'),
(str: string) => str.replaceAll('\n</details>', '\n[ENDTHINKFLAG]</details>'),
(str: string) => str.replace('<think>\n', '<details data-think=true>\n'),
(str: string) => str.replace('\n</think>', '\n[ENDTHINKFLAG]</details>'),
])(content)
}


Loading…
Cancel
Save