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