fix:修复单行CodeBlock中显示sub
This commit is contained in:
parent
dde0400f0d
commit
09e6756efe
@ -64,6 +64,7 @@
|
||||
"adm-zip": "^0.5.16",
|
||||
"apache-arrow": "^18.1.0",
|
||||
"docx": "^9.0.2",
|
||||
"dompurify": "^3.2.3",
|
||||
"electron-log": "^5.1.5",
|
||||
"electron-store": "^8.2.0",
|
||||
"electron-updater": "^6.3.9",
|
||||
|
||||
@ -3,6 +3,7 @@ import CopyIcon from '@renderer/components/Icons/CopyIcon'
|
||||
import { useSyntaxHighlighter } from '@renderer/context/SyntaxHighlighterProvider'
|
||||
import { useSettings } from '@renderer/hooks/useSettings'
|
||||
import React, { memo, useEffect, useRef, useState } from 'react'
|
||||
import DOMPurify from 'dompurify'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import styled from 'styled-components'
|
||||
|
||||
@ -37,6 +38,7 @@ const ExpandButton: React.FC<{
|
||||
</ExpandButtonWrapper>
|
||||
)
|
||||
}
|
||||
const ALLOWED_TAGS = ['sub'] // 允许的HTML标签
|
||||
|
||||
const CodeBlock: React.FC<CodeBlockProps> = ({ children, className }) => {
|
||||
const match = /language-(\w+)/.exec(className || '')
|
||||
@ -133,7 +135,15 @@ const CodeBlock: React.FC<CodeBlockProps> = ({ children, className }) => {
|
||||
{language === 'html' && children?.includes('</html>') && <Artifacts html={children} />}
|
||||
</CodeBlockWrapper>
|
||||
) : (
|
||||
<code className={className}>{children}</code>
|
||||
<code
|
||||
className={className}
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: DOMPurify.sanitize(children, {
|
||||
ALLOWED_TAGS,
|
||||
ALLOWED_ATTR: [] // 不允许任何属性
|
||||
})
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user