chore: remove html renderer sanitizes

This commit is contained in:
Steven 2024-11-05 22:44:37 +08:00
parent 57c00734e2
commit 67c1a46346
3 changed files with 1 additions and 31 deletions

View File

@ -24,7 +24,6 @@
"clsx": "^2.1.1",
"copy-to-clipboard": "^3.3.3",
"dayjs": "^1.11.13",
"dompurify": "^3.1.7",
"fuse.js": "^7.0.0",
"highlight.js": "^11.10.0",
"i18next": "^23.16.3",
@ -55,7 +54,6 @@
"@bufbuild/protobuf": "^2.2.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/d3": "^7.4.3",
"@types/dompurify": "^3.0.5",
"@types/katex": "^0.16.7",
"@types/leaflet": "^1.9.14",
"@types/lodash-es": "^4.17.12",

23
web/pnpm-lock.yaml generated
View File

@ -53,9 +53,6 @@ importers:
dayjs:
specifier: ^1.11.13
version: 1.11.13
dompurify:
specifier: ^3.1.7
version: 3.1.7
fuse.js:
specifier: ^7.0.0
version: 7.0.0
@ -141,9 +138,6 @@ importers:
'@types/d3':
specifier: ^7.4.3
version: 7.4.3
'@types/dompurify':
specifier: ^3.0.5
version: 3.0.5
'@types/katex':
specifier: ^0.16.7
version: 0.16.7
@ -1294,9 +1288,6 @@ packages:
'@types/d3@7.4.3':
resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
'@types/dompurify@3.0.5':
resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==}
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
@ -1339,9 +1330,6 @@ packages:
'@types/textarea-caret@3.0.3':
resolution: {integrity: sha512-bsA9GdXV1wQsXyDjS5+A+czz8IAR3haH5DU+KctIoXbzobRL2NOiwF/+EbB7pofAyudMytLj4ihPtbmbJT8FWw==}
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
'@types/use-sync-external-store@0.0.3':
resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==}
@ -1896,9 +1884,6 @@ packages:
dompurify@3.1.6:
resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
dompurify@3.1.7:
resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==}
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
@ -4513,10 +4498,6 @@ snapshots:
'@types/d3-transition': 3.0.9
'@types/d3-zoom': 3.0.8
'@types/dompurify@3.0.5':
dependencies:
'@types/trusted-types': 2.0.7
'@types/estree@1.0.6': {}
'@types/geojson@7946.0.14': {}
@ -4556,8 +4537,6 @@ snapshots:
'@types/textarea-caret@3.0.3': {}
'@types/trusted-types@2.0.7': {}
'@types/use-sync-external-store@0.0.3': {}
'@types/uuid@10.0.0': {}
@ -5193,8 +5172,6 @@ snapshots:
dompurify@3.1.6: {}
dompurify@3.1.7: {}
eastasianwidth@0.2.0: {}
electron-to-chromium@1.5.45: {}

View File

@ -1,6 +1,5 @@
import clsx from "clsx";
import copy from "copy-to-clipboard";
import DOMPurify from "dompurify";
import hljs from "highlight.js";
import { CopyIcon } from "lucide-react";
import { useCallback, useMemo } from "react";
@ -24,15 +23,11 @@ const CodeBlock: React.FC<Props> = ({ language, content }: Props) => {
// Users can set Markdown code blocks as `__html` to render HTML directly.
if (formatedLanguage === SpecialLanguage.HTML) {
const purify = DOMPurify(window);
return (
<div
className="w-full overflow-auto !my-2"
dangerouslySetInnerHTML={{
__html: purify.sanitize(content, {
ALLOWED_TAGS: ["iframe"],
ADD_ATTR: ["allow", "allowfullscreen", "frameborder", "scrolling"],
}),
__html: content,
}}
/>
);