support mermaid

This commit is contained in:
archer
2023-06-11 16:32:06 +08:00
parent d057d20c17
commit d0c3d60751
11 changed files with 914 additions and 119 deletions

View File

@@ -34,6 +34,7 @@
"jsonwebtoken": "^9.0.0",
"lodash": "^4.17.21",
"mammoth": "^1.5.1",
"mermaid": "^8.13.5",
"mongoose": "^6.10.0",
"nanoid": "^4.0.1",
"next": "13.1.6",
@@ -49,14 +50,14 @@
"react-markdown": "^8.0.5",
"react-syntax-highlighter": "^15.5.0",
"rehype-katex": "^6.0.2",
"remark-breaks": "^3.0.3",
"remark-gfm": "^3.0.1",
"remark-math": "^5.1.1",
"request-ip": "^3.3.0",
"sass": "^1.58.3",
"tunnel": "^0.0.6",
"wxpay-v3": "^3.0.2",
"zustand": "^4.3.5",
"mermaid": "^8.13.5"
"zustand": "^4.3.5"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",

729
client/pnpm-lock.yaml generated
View File

@@ -80,6 +80,9 @@ dependencies:
mammoth:
specifier: ^1.5.1
version: registry.npmmirror.com/mammoth@1.5.1
mermaid:
specifier: ^8.13.5
version: registry.npmmirror.com/mermaid@8.13.5
mongoose:
specifier: ^6.10.0
version: registry.npmmirror.com/mongoose@6.10.0
@@ -125,6 +128,9 @@ dependencies:
rehype-katex:
specifier: ^6.0.2
version: registry.npmmirror.com/rehype-katex@6.0.2
remark-breaks:
specifier: ^3.0.3
version: registry.npmmirror.com/remark-breaks@3.0.3
remark-gfm:
specifier: ^3.0.1
version: registry.npmmirror.com/remark-gfm@3.0.1
@@ -2914,6 +2920,13 @@ packages:
'@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.5
to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0
registry.npmmirror.com/@braintree/sanitize-url@3.1.0:
resolution: {integrity: sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz}
name: '@braintree/sanitize-url'
version: 3.1.0
deprecated: Potential XSS vulnerability patched in v6.0.0.
dev: false
registry.npmmirror.com/@chakra-ui/accordion@2.1.9(@chakra-ui/system@2.5.1)(framer-motion@9.0.6)(react@18.2.0):
resolution: {integrity: sha512-a9CKIAUHezc0f5FR/SQ4GVxnWuIb2HbDTxTEKTp58w/J9pecIbJaNrJ5TUZ0MVbDU9jkgO9RsZ29jkja8PomAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@chakra-ui/accordion/-/accordion-2.1.9.tgz}
id: registry.npmmirror.com/@chakra-ui/accordion/2.1.9
@@ -6160,12 +6173,17 @@ packages:
version: 2.0.3
dev: false
registry.npmmirror.com/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz}
name: commander
version: 2.20.3
dev: false
registry.npmmirror.com/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz}
name: commander
version: 7.2.0
engines: {node: '>= 10'}
dev: true
registry.npmmirror.com/commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz}
@@ -6324,6 +6342,618 @@ packages:
name: csstype
version: 3.1.2
registry.npmmirror.com/d3-array@1.2.4:
resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz}
name: d3-array
version: 1.2.4
dev: false
registry.npmmirror.com/d3-array@3.2.4:
resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz}
name: d3-array
version: 3.2.4
engines: {node: '>=12'}
dependencies:
internmap: registry.npmmirror.com/internmap@2.0.3
dev: false
registry.npmmirror.com/d3-axis@1.0.12:
resolution: {integrity: sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-axis/-/d3-axis-1.0.12.tgz}
name: d3-axis
version: 1.0.12
dev: false
registry.npmmirror.com/d3-axis@3.0.0:
resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-axis/-/d3-axis-3.0.0.tgz}
name: d3-axis
version: 3.0.0
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-brush@1.1.6:
resolution: {integrity: sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-brush/-/d3-brush-1.1.6.tgz}
name: d3-brush
version: 1.1.6
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-drag: registry.npmmirror.com/d3-drag@1.2.5
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
d3-selection: registry.npmmirror.com/d3-selection@1.4.2
d3-transition: registry.npmmirror.com/d3-transition@1.3.2
dev: false
registry.npmmirror.com/d3-brush@3.0.0:
resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-brush/-/d3-brush-3.0.0.tgz}
name: d3-brush
version: 3.0.0
engines: {node: '>=12'}
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-drag: registry.npmmirror.com/d3-drag@3.0.0
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
d3-selection: registry.npmmirror.com/d3-selection@3.0.0
d3-transition: registry.npmmirror.com/d3-transition@3.0.1(d3-selection@3.0.0)
dev: false
registry.npmmirror.com/d3-chord@1.0.6:
resolution: {integrity: sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-chord/-/d3-chord-1.0.6.tgz}
name: d3-chord
version: 1.0.6
dependencies:
d3-array: registry.npmmirror.com/d3-array@1.2.4
d3-path: registry.npmmirror.com/d3-path@1.0.9
dev: false
registry.npmmirror.com/d3-chord@3.0.1:
resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-chord/-/d3-chord-3.0.1.tgz}
name: d3-chord
version: 3.0.1
engines: {node: '>=12'}
dependencies:
d3-path: registry.npmmirror.com/d3-path@3.1.0
dev: false
registry.npmmirror.com/d3-collection@1.0.7:
resolution: {integrity: sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz}
name: d3-collection
version: 1.0.7
dev: false
registry.npmmirror.com/d3-color@1.4.1:
resolution: {integrity: sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz}
name: d3-color
version: 1.4.1
dev: false
registry.npmmirror.com/d3-color@3.1.0:
resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz}
name: d3-color
version: 3.1.0
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-contour@1.3.2:
resolution: {integrity: sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-contour/-/d3-contour-1.3.2.tgz}
name: d3-contour
version: 1.3.2
dependencies:
d3-array: registry.npmmirror.com/d3-array@1.2.4
dev: false
registry.npmmirror.com/d3-contour@4.0.2:
resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-contour/-/d3-contour-4.0.2.tgz}
name: d3-contour
version: 4.0.2
engines: {node: '>=12'}
dependencies:
d3-array: registry.npmmirror.com/d3-array@3.2.4
dev: false
registry.npmmirror.com/d3-delaunay@6.0.4:
resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz}
name: d3-delaunay
version: 6.0.4
engines: {node: '>=12'}
dependencies:
delaunator: registry.npmmirror.com/delaunator@5.0.0
dev: false
registry.npmmirror.com/d3-dispatch@1.0.6:
resolution: {integrity: sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz}
name: d3-dispatch
version: 1.0.6
dev: false
registry.npmmirror.com/d3-dispatch@3.0.1:
resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz}
name: d3-dispatch
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-drag@1.2.5:
resolution: {integrity: sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-drag/-/d3-drag-1.2.5.tgz}
name: d3-drag
version: 1.2.5
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-selection: registry.npmmirror.com/d3-selection@1.4.2
dev: false
registry.npmmirror.com/d3-drag@3.0.0:
resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-drag/-/d3-drag-3.0.0.tgz}
name: d3-drag
version: 3.0.0
engines: {node: '>=12'}
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-selection: registry.npmmirror.com/d3-selection@3.0.0
dev: false
registry.npmmirror.com/d3-dsv@1.2.0:
resolution: {integrity: sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dsv/-/d3-dsv-1.2.0.tgz}
name: d3-dsv
version: 1.2.0
hasBin: true
dependencies:
commander: registry.npmmirror.com/commander@2.20.3
iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24
rw: registry.npmmirror.com/rw@1.3.3
dev: false
registry.npmmirror.com/d3-dsv@3.0.1:
resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz}
name: d3-dsv
version: 3.0.1
engines: {node: '>=12'}
hasBin: true
dependencies:
commander: registry.npmmirror.com/commander@7.2.0
iconv-lite: registry.npmmirror.com/iconv-lite@0.6.3
rw: registry.npmmirror.com/rw@1.3.3
dev: false
registry.npmmirror.com/d3-ease@1.0.7:
resolution: {integrity: sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz}
name: d3-ease
version: 1.0.7
dev: false
registry.npmmirror.com/d3-ease@3.0.1:
resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz}
name: d3-ease
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-fetch@1.2.0:
resolution: {integrity: sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-fetch/-/d3-fetch-1.2.0.tgz}
name: d3-fetch
version: 1.2.0
dependencies:
d3-dsv: registry.npmmirror.com/d3-dsv@1.2.0
dev: false
registry.npmmirror.com/d3-fetch@3.0.1:
resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz}
name: d3-fetch
version: 3.0.1
engines: {node: '>=12'}
dependencies:
d3-dsv: registry.npmmirror.com/d3-dsv@3.0.1
dev: false
registry.npmmirror.com/d3-force@1.2.1:
resolution: {integrity: sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-force/-/d3-force-1.2.1.tgz}
name: d3-force
version: 1.2.1
dependencies:
d3-collection: registry.npmmirror.com/d3-collection@1.0.7
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-quadtree: registry.npmmirror.com/d3-quadtree@1.0.7
d3-timer: registry.npmmirror.com/d3-timer@1.0.10
dev: false
registry.npmmirror.com/d3-force@3.0.0:
resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz}
name: d3-force
version: 3.0.0
engines: {node: '>=12'}
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-quadtree: registry.npmmirror.com/d3-quadtree@3.0.1
d3-timer: registry.npmmirror.com/d3-timer@3.0.1
dev: false
registry.npmmirror.com/d3-format@1.4.5:
resolution: {integrity: sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-format/-/d3-format-1.4.5.tgz}
name: d3-format
version: 1.4.5
dev: false
registry.npmmirror.com/d3-format@3.1.0:
resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz}
name: d3-format
version: 3.1.0
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-geo@1.12.1:
resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-geo/-/d3-geo-1.12.1.tgz}
name: d3-geo
version: 1.12.1
dependencies:
d3-array: registry.npmmirror.com/d3-array@1.2.4
dev: false
registry.npmmirror.com/d3-geo@3.1.0:
resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.0.tgz}
name: d3-geo
version: 3.1.0
engines: {node: '>=12'}
dependencies:
d3-array: registry.npmmirror.com/d3-array@3.2.4
dev: false
registry.npmmirror.com/d3-hierarchy@1.1.9:
resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz}
name: d3-hierarchy
version: 1.1.9
dev: false
registry.npmmirror.com/d3-hierarchy@3.1.2:
resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz}
name: d3-hierarchy
version: 3.1.2
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-interpolate@1.4.0:
resolution: {integrity: sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz}
name: d3-interpolate
version: 1.4.0
dependencies:
d3-color: registry.npmmirror.com/d3-color@1.4.1
dev: false
registry.npmmirror.com/d3-interpolate@3.0.1:
resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz}
name: d3-interpolate
version: 3.0.1
engines: {node: '>=12'}
dependencies:
d3-color: registry.npmmirror.com/d3-color@3.1.0
dev: false
registry.npmmirror.com/d3-path@1.0.9:
resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz}
name: d3-path
version: 1.0.9
dev: false
registry.npmmirror.com/d3-path@3.1.0:
resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz}
name: d3-path
version: 3.1.0
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-polygon@1.0.6:
resolution: {integrity: sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-polygon/-/d3-polygon-1.0.6.tgz}
name: d3-polygon
version: 1.0.6
dev: false
registry.npmmirror.com/d3-polygon@3.0.1:
resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-polygon/-/d3-polygon-3.0.1.tgz}
name: d3-polygon
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-quadtree@1.0.7:
resolution: {integrity: sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz}
name: d3-quadtree
version: 1.0.7
dev: false
registry.npmmirror.com/d3-quadtree@3.0.1:
resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz}
name: d3-quadtree
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-random@1.1.2:
resolution: {integrity: sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-random/-/d3-random-1.1.2.tgz}
name: d3-random
version: 1.1.2
dev: false
registry.npmmirror.com/d3-random@3.0.1:
resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz}
name: d3-random
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-scale-chromatic@1.5.0:
resolution: {integrity: sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz}
name: d3-scale-chromatic
version: 1.5.0
dependencies:
d3-color: registry.npmmirror.com/d3-color@1.4.1
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
dev: false
registry.npmmirror.com/d3-scale-chromatic@3.0.0:
resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz}
name: d3-scale-chromatic
version: 3.0.0
engines: {node: '>=12'}
dependencies:
d3-color: registry.npmmirror.com/d3-color@3.1.0
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
dev: false
registry.npmmirror.com/d3-scale@2.2.2:
resolution: {integrity: sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-scale/-/d3-scale-2.2.2.tgz}
name: d3-scale
version: 2.2.2
dependencies:
d3-array: registry.npmmirror.com/d3-array@1.2.4
d3-collection: registry.npmmirror.com/d3-collection@1.0.7
d3-format: registry.npmmirror.com/d3-format@1.4.5
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
d3-time: registry.npmmirror.com/d3-time@1.1.0
d3-time-format: registry.npmmirror.com/d3-time-format@2.3.0
dev: false
registry.npmmirror.com/d3-scale@4.0.2:
resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz}
name: d3-scale
version: 4.0.2
engines: {node: '>=12'}
dependencies:
d3-array: registry.npmmirror.com/d3-array@3.2.4
d3-format: registry.npmmirror.com/d3-format@3.1.0
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
d3-time: registry.npmmirror.com/d3-time@3.1.0
d3-time-format: registry.npmmirror.com/d3-time-format@4.1.0
dev: false
registry.npmmirror.com/d3-selection@1.4.2:
resolution: {integrity: sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-selection/-/d3-selection-1.4.2.tgz}
name: d3-selection
version: 1.4.2
dev: false
registry.npmmirror.com/d3-selection@3.0.0:
resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz}
name: d3-selection
version: 3.0.0
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-shape@1.3.7:
resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz}
name: d3-shape
version: 1.3.7
dependencies:
d3-path: registry.npmmirror.com/d3-path@1.0.9
dev: false
registry.npmmirror.com/d3-shape@3.2.0:
resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz}
name: d3-shape
version: 3.2.0
engines: {node: '>=12'}
dependencies:
d3-path: registry.npmmirror.com/d3-path@3.1.0
dev: false
registry.npmmirror.com/d3-time-format@2.3.0:
resolution: {integrity: sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time-format/-/d3-time-format-2.3.0.tgz}
name: d3-time-format
version: 2.3.0
dependencies:
d3-time: registry.npmmirror.com/d3-time@1.1.0
dev: false
registry.npmmirror.com/d3-time-format@4.1.0:
resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz}
name: d3-time-format
version: 4.1.0
engines: {node: '>=12'}
dependencies:
d3-time: registry.npmmirror.com/d3-time@3.1.0
dev: false
registry.npmmirror.com/d3-time@1.1.0:
resolution: {integrity: sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz}
name: d3-time
version: 1.1.0
dev: false
registry.npmmirror.com/d3-time@3.1.0:
resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz}
name: d3-time
version: 3.1.0
engines: {node: '>=12'}
dependencies:
d3-array: registry.npmmirror.com/d3-array@3.2.4
dev: false
registry.npmmirror.com/d3-timer@1.0.10:
resolution: {integrity: sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz}
name: d3-timer
version: 1.0.10
dev: false
registry.npmmirror.com/d3-timer@3.0.1:
resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz}
name: d3-timer
version: 3.0.1
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/d3-transition@1.3.2:
resolution: {integrity: sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-transition/-/d3-transition-1.3.2.tgz}
name: d3-transition
version: 1.3.2
dependencies:
d3-color: registry.npmmirror.com/d3-color@1.4.1
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-ease: registry.npmmirror.com/d3-ease@1.0.7
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
d3-selection: registry.npmmirror.com/d3-selection@1.4.2
d3-timer: registry.npmmirror.com/d3-timer@1.0.10
dev: false
registry.npmmirror.com/d3-transition@3.0.1(d3-selection@3.0.0):
resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-transition/-/d3-transition-3.0.1.tgz}
id: registry.npmmirror.com/d3-transition/3.0.1
name: d3-transition
version: 3.0.1
engines: {node: '>=12'}
peerDependencies:
d3-selection: 2 - 3
dependencies:
d3-color: registry.npmmirror.com/d3-color@3.1.0
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-ease: registry.npmmirror.com/d3-ease@3.0.1
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
d3-selection: registry.npmmirror.com/d3-selection@3.0.0
d3-timer: registry.npmmirror.com/d3-timer@3.0.1
dev: false
registry.npmmirror.com/d3-voronoi@1.1.4:
resolution: {integrity: sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz}
name: d3-voronoi
version: 1.1.4
dev: false
registry.npmmirror.com/d3-zoom@1.8.3:
resolution: {integrity: sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-zoom/-/d3-zoom-1.8.3.tgz}
name: d3-zoom
version: 1.8.3
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-drag: registry.npmmirror.com/d3-drag@1.2.5
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
d3-selection: registry.npmmirror.com/d3-selection@1.4.2
d3-transition: registry.npmmirror.com/d3-transition@1.3.2
dev: false
registry.npmmirror.com/d3-zoom@3.0.0:
resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-zoom/-/d3-zoom-3.0.0.tgz}
name: d3-zoom
version: 3.0.0
engines: {node: '>=12'}
dependencies:
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-drag: registry.npmmirror.com/d3-drag@3.0.0
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
d3-selection: registry.npmmirror.com/d3-selection@3.0.0
d3-transition: registry.npmmirror.com/d3-transition@3.0.1(d3-selection@3.0.0)
dev: false
registry.npmmirror.com/d3@5.16.0:
resolution: {integrity: sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3/-/d3-5.16.0.tgz}
name: d3
version: 5.16.0
dependencies:
d3-array: registry.npmmirror.com/d3-array@1.2.4
d3-axis: registry.npmmirror.com/d3-axis@1.0.12
d3-brush: registry.npmmirror.com/d3-brush@1.1.6
d3-chord: registry.npmmirror.com/d3-chord@1.0.6
d3-collection: registry.npmmirror.com/d3-collection@1.0.7
d3-color: registry.npmmirror.com/d3-color@1.4.1
d3-contour: registry.npmmirror.com/d3-contour@1.3.2
d3-dispatch: registry.npmmirror.com/d3-dispatch@1.0.6
d3-drag: registry.npmmirror.com/d3-drag@1.2.5
d3-dsv: registry.npmmirror.com/d3-dsv@1.2.0
d3-ease: registry.npmmirror.com/d3-ease@1.0.7
d3-fetch: registry.npmmirror.com/d3-fetch@1.2.0
d3-force: registry.npmmirror.com/d3-force@1.2.1
d3-format: registry.npmmirror.com/d3-format@1.4.5
d3-geo: registry.npmmirror.com/d3-geo@1.12.1
d3-hierarchy: registry.npmmirror.com/d3-hierarchy@1.1.9
d3-interpolate: registry.npmmirror.com/d3-interpolate@1.4.0
d3-path: registry.npmmirror.com/d3-path@1.0.9
d3-polygon: registry.npmmirror.com/d3-polygon@1.0.6
d3-quadtree: registry.npmmirror.com/d3-quadtree@1.0.7
d3-random: registry.npmmirror.com/d3-random@1.1.2
d3-scale: registry.npmmirror.com/d3-scale@2.2.2
d3-scale-chromatic: registry.npmmirror.com/d3-scale-chromatic@1.5.0
d3-selection: registry.npmmirror.com/d3-selection@1.4.2
d3-shape: registry.npmmirror.com/d3-shape@1.3.7
d3-time: registry.npmmirror.com/d3-time@1.1.0
d3-time-format: registry.npmmirror.com/d3-time-format@2.3.0
d3-timer: registry.npmmirror.com/d3-timer@1.0.10
d3-transition: registry.npmmirror.com/d3-transition@1.3.2
d3-voronoi: registry.npmmirror.com/d3-voronoi@1.1.4
d3-zoom: registry.npmmirror.com/d3-zoom@1.8.3
dev: false
registry.npmmirror.com/d3@7.8.5:
resolution: {integrity: sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3/-/d3-7.8.5.tgz}
name: d3
version: 7.8.5
engines: {node: '>=12'}
dependencies:
d3-array: registry.npmmirror.com/d3-array@3.2.4
d3-axis: registry.npmmirror.com/d3-axis@3.0.0
d3-brush: registry.npmmirror.com/d3-brush@3.0.0
d3-chord: registry.npmmirror.com/d3-chord@3.0.1
d3-color: registry.npmmirror.com/d3-color@3.1.0
d3-contour: registry.npmmirror.com/d3-contour@4.0.2
d3-delaunay: registry.npmmirror.com/d3-delaunay@6.0.4
d3-dispatch: registry.npmmirror.com/d3-dispatch@3.0.1
d3-drag: registry.npmmirror.com/d3-drag@3.0.0
d3-dsv: registry.npmmirror.com/d3-dsv@3.0.1
d3-ease: registry.npmmirror.com/d3-ease@3.0.1
d3-fetch: registry.npmmirror.com/d3-fetch@3.0.1
d3-force: registry.npmmirror.com/d3-force@3.0.0
d3-format: registry.npmmirror.com/d3-format@3.1.0
d3-geo: registry.npmmirror.com/d3-geo@3.1.0
d3-hierarchy: registry.npmmirror.com/d3-hierarchy@3.1.2
d3-interpolate: registry.npmmirror.com/d3-interpolate@3.0.1
d3-path: registry.npmmirror.com/d3-path@3.1.0
d3-polygon: registry.npmmirror.com/d3-polygon@3.0.1
d3-quadtree: registry.npmmirror.com/d3-quadtree@3.0.1
d3-random: registry.npmmirror.com/d3-random@3.0.1
d3-scale: registry.npmmirror.com/d3-scale@4.0.2
d3-scale-chromatic: registry.npmmirror.com/d3-scale-chromatic@3.0.0
d3-selection: registry.npmmirror.com/d3-selection@3.0.0
d3-shape: registry.npmmirror.com/d3-shape@3.2.0
d3-time: registry.npmmirror.com/d3-time@3.1.0
d3-time-format: registry.npmmirror.com/d3-time-format@4.1.0
d3-timer: registry.npmmirror.com/d3-timer@3.0.1
d3-transition: registry.npmmirror.com/d3-transition@3.0.1(d3-selection@3.0.0)
d3-zoom: registry.npmmirror.com/d3-zoom@3.0.0
dev: false
registry.npmmirror.com/dagre-d3@0.6.4:
resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dagre-d3/-/dagre-d3-0.6.4.tgz}
name: dagre-d3
version: 0.6.4
dependencies:
d3: registry.npmmirror.com/d3@5.16.0
dagre: registry.npmmirror.com/dagre@0.8.5
graphlib: registry.npmmirror.com/graphlib@2.1.8
lodash: registry.npmmirror.com/lodash@4.17.21
dev: false
registry.npmmirror.com/dagre@0.8.5:
resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz}
name: dagre
version: 0.8.5
dependencies:
graphlib: registry.npmmirror.com/graphlib@2.1.8
lodash: registry.npmmirror.com/lodash@4.17.21
dev: false
registry.npmmirror.com/damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz}
name: damerau-levenshtein
@@ -6487,6 +7117,14 @@ packages:
vm2: registry.npmmirror.com/vm2@3.9.19
dev: false
registry.npmmirror.com/delaunator@5.0.0:
resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delaunator/-/delaunator-5.0.0.tgz}
name: delaunator
version: 5.0.0
dependencies:
robust-predicates: registry.npmmirror.com/robust-predicates@3.0.2
dev: false
registry.npmmirror.com/delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz}
name: delayed-stream
@@ -6602,6 +7240,12 @@ packages:
domelementtype: registry.npmmirror.com/domelementtype@2.3.0
dev: true
registry.npmmirror.com/dompurify@2.3.3:
resolution: {integrity: sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dompurify/-/dompurify-2.3.3.tgz}
name: dompurify
version: 2.3.3
dev: false
registry.npmmirror.com/domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz}
name: domutils
@@ -7669,6 +8313,14 @@ packages:
version: 1.4.0
dev: false
registry.npmmirror.com/graphlib@2.1.8:
resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz}
name: graphlib
version: 2.1.8
dependencies:
lodash: registry.npmmirror.com/lodash@4.17.21
dev: false
registry.npmmirror.com/has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz}
name: has-bigints
@@ -7916,6 +8568,15 @@ packages:
safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2
dev: false
registry.npmmirror.com/iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz}
name: iconv-lite
version: 0.6.3
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2
dev: false
registry.npmmirror.com/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz}
name: ieee754
@@ -8000,6 +8661,13 @@ packages:
side-channel: registry.npmmirror.com/side-channel@1.0.4
dev: true
registry.npmmirror.com/internmap@2.0.3:
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz}
name: internmap
version: 2.0.3
engines: {node: '>=12'}
dev: false
registry.npmmirror.com/invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz}
name: invariant
@@ -8508,6 +9176,12 @@ packages:
commander: registry.npmmirror.com/commander@8.3.0
dev: false
registry.npmmirror.com/khroma@1.4.1:
resolution: {integrity: sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/khroma/-/khroma-1.4.1.tgz}
name: khroma
version: 1.4.1
dev: false
registry.npmmirror.com/kitx@2.1.0:
resolution: {integrity: sha512-C/5v9MtIX7aHGOjwn5BmrrbNkJSf7i0R5mRzmh13GSAdRqQ7bYQo/Su2pTYNylFicqKNTVX3HML9k1u8k51+pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kitx/-/kitx-2.1.0.tgz}
name: kitx
@@ -8794,6 +9468,15 @@ packages:
mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0
dev: false
registry.npmmirror.com/mdast-util-newline-to-break@1.0.0:
resolution: {integrity: sha512-491LcYv3gbGhhCrLoeALncQmega2xPh+m3gbsIhVsOX4sw85+ShLFPvPyibxc1Swx/6GtzxgVodq+cGa/47ULg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-newline-to-break/-/mdast-util-newline-to-break-1.0.0.tgz}
name: mdast-util-newline-to-break
version: 1.0.0
dependencies:
'@types/mdast': registry.npmmirror.com/@types/mdast@3.0.11
mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2
dev: false
registry.npmmirror.com/mdast-util-phrasing@3.0.1:
resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz}
name: mdast-util-phrasing
@@ -8867,6 +9550,22 @@ packages:
engines: {node: '>= 8'}
dev: true
registry.npmmirror.com/mermaid@8.13.5:
resolution: {integrity: sha512-xLINkCQqZZfqDaLpQVy9BOsws8jT6sLBE2ympDEg4G2uvUu1n61j/h3OFDaA2N4dpZyN7q2pAYkDQ4yywruivA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mermaid/-/mermaid-8.13.5.tgz}
name: mermaid
version: 8.13.5
dependencies:
'@braintree/sanitize-url': registry.npmmirror.com/@braintree/sanitize-url@3.1.0
d3: registry.npmmirror.com/d3@7.8.5
dagre: registry.npmmirror.com/dagre@0.8.5
dagre-d3: registry.npmmirror.com/dagre-d3@0.6.4
dompurify: registry.npmmirror.com/dompurify@2.3.3
graphlib: registry.npmmirror.com/graphlib@2.1.8
khroma: registry.npmmirror.com/khroma@1.4.1
moment-mini: registry.npmmirror.com/moment-mini@2.29.4
stylis: registry.npmmirror.com/stylis@4.2.0
dev: false
registry.npmmirror.com/micromark-core-commonmark@1.1.0:
resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz}
name: micromark-core-commonmark
@@ -9254,6 +9953,12 @@ packages:
minimist: registry.npmmirror.com/minimist@1.2.8
dev: false
registry.npmmirror.com/moment-mini@2.29.4:
resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/moment-mini/-/moment-mini-2.29.4.tgz}
name: moment-mini
version: 2.29.4
dev: false
registry.npmmirror.com/mongodb-connection-string-url@2.6.0:
resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz}
name: mongodb-connection-string-url
@@ -10420,6 +11125,16 @@ packages:
unified: registry.npmmirror.com/unified@10.1.2
dev: false
registry.npmmirror.com/remark-breaks@3.0.3:
resolution: {integrity: sha512-C7VkvcUp1TPUc2eAYzsPdaUh8Xj4FSbQnYA5A9f80diApLZscTDeG7efiWP65W8hV2sEy3JuGVU0i6qr5D8Hug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-breaks/-/remark-breaks-3.0.3.tgz}
name: remark-breaks
version: 3.0.3
dependencies:
'@types/mdast': registry.npmmirror.com/@types/mdast@3.0.11
mdast-util-newline-to-break: registry.npmmirror.com/mdast-util-newline-to-break@1.0.0
unified: registry.npmmirror.com/unified@10.1.2
dev: false
registry.npmmirror.com/remark-gfm@3.0.1:
resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz}
name: remark-gfm
@@ -10522,6 +11237,12 @@ packages:
glob: registry.npmmirror.com/glob@7.2.3
dev: true
registry.npmmirror.com/robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz}
name: robust-predicates
version: 3.0.2
dev: false
registry.npmmirror.com/run-applescript@5.0.0:
resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz}
name: run-applescript
@@ -10539,6 +11260,12 @@ packages:
queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3
dev: true
registry.npmmirror.com/rw@1.3.3:
resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz}
name: rw
version: 1.3.3
dev: false
registry.npmmirror.com/sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz}
name: sade

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1686468581713" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2951" xmlns:xlink="http://www.w3.org/1999/xlink" ><path d="M512 640.64a42.666667 42.666667 0 0 0 42.666667-42.666667v-341.333333h130.986666a21.333333 21.333333 0 0 0 14.250667-5.461333l2.688-2.901334a21.333333 21.333333 0 0 0-4.010667-29.909333l-165.717333-126.464a32 32 0 0 0-38.912 0.042667L329.472 218.453333a21.333333 21.333333 0 0 0 12.970667 38.229334H469.333333v341.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m229.674667-298.368a42.666667 42.666667 0 0 0 4.992 85.034667H853.333333v426.666666H170.666667v-426.666666h106.666666a42.666667 42.666667 0 0 0 0-85.333334H170.666667a85.333333 85.333333 0 0 0-85.333334 85.333334v426.666666a85.333333 85.333333 0 0 0 85.333334 85.333334h682.666666a85.333333 85.333333 0 0 0 85.333334-85.333334v-426.666666a85.333333 85.333333 0 0 0-85.333334-85.333334h-106.666666z" fill="#000000" p-id="2952"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -29,7 +29,8 @@ const map = {
appStore: require('./icons/appStore.svg').default,
menu: require('./icons/menu.svg').default,
edit: require('./icons/edit.svg').default,
inform: require('./icons/inform.svg').default
inform: require('./icons/inform.svg').default,
export: require('./icons/export.svg').default
};
export type IconName = keyof typeof map;

View File

@@ -0,0 +1,17 @@
import React, { memo } from 'react';
import { Box } from '@chakra-ui/react';
const Loading = () => {
return (
<Box
w={'100%'}
h={'80px'}
backgroundImage={'url("/imgs/loading.gif")'}
backgroundSize={'contain'}
backgroundRepeat={'no-repeat'}
backgroundPosition={'center'}
/>
);
};
export default memo(Loading);

View File

@@ -1,63 +1,99 @@
import React, { FC, useEffect, useState, useRef } from 'react';
import React, { useEffect, useRef, memo, useCallback, useState } from 'react';
import { Box } from '@chakra-ui/react';
// @ts-ignore
import mermaid from 'mermaid';
import { Spinner } from '@chakra-ui/react';
import MyIcon from '../Icon';
interface MermaidCodeBlockProps {
code: string;
}
import styles from './index.module.scss';
const MermaidCodeBlock: FC<MermaidCodeBlockProps> = ({ code }) => {
const [svg, setSvg] = useState<string | null>(null);
const [loading, setLoading] = useState<boolean>(true);
const codeTimeoutIdRef = useRef<number | null>(null);
const mermaidAPI = mermaid.mermaidAPI;
mermaidAPI.initialize({
startOnLoad: false,
theme: 'base',
themeVariables: {
fontSize: '14px',
primaryColor: '#d6e8ff',
primaryTextColor: '#485058',
primaryBorderColor: '#fff',
lineColor: '#5A646E',
secondaryColor: '#B5E9E5',
tertiaryColor: '#485058'
}
});
const MermaidBlock = ({ code }: { code: string }) => {
const dom = useRef<HTMLDivElement>(null);
const [svg, setSvg] = useState('');
useEffect(() => {
if (codeTimeoutIdRef.current) {
clearTimeout(codeTimeoutIdRef.current);
try {
mermaidAPI.render('mermaid-svg', code, (svgCode: string) => {
setSvg(svgCode);
});
} catch (error) {
console.log(error);
}
codeTimeoutIdRef.current = window.setTimeout(() => {
setLoading(true);
const mermaidAPI = (mermaid as any).mermaidAPI as any;
mermaidAPI.initialize({ startOnLoad: false, theme: 'forest' });
try {
mermaidAPI.parse(code);
mermaidAPI.render('mermaid-svg', code, (svgCode: string) => {
setSvg(svgCode);
setLoading(false);
});
} catch (error) {
console.error('Error parsing Mermaid code:', '\n', error, '\n', 'Code:', code);
setLoading(false);
return;
}
}, 1000);
}, [code]);
useEffect(() => {
return () => {
if (codeTimeoutIdRef.current) {
clearTimeout(codeTimeoutIdRef.current);
}
const onclickExport = useCallback(() => {
const svg = dom.current?.children[0];
if (!svg) return;
const w = svg.clientWidth * 4;
const h = svg.clientHeight * 4;
const canvas = document.createElement('canvas');
canvas.width = w;
canvas.height = h;
const ctx = canvas.getContext('2d');
if (!ctx) return;
// 绘制白色背景
ctx.fillStyle = '#fff';
ctx.fillRect(0, 0, w, h);
const img = new Image();
img.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(dom.current.innerHTML)}`;
img.onload = () => {
ctx.drawImage(img, 0, 0, w, h);
const jpgDataUrl = canvas.toDataURL('image/jpeg', 1);
const a = document.createElement('a');
a.href = jpgDataUrl;
a.download = 'mermaid.jpg';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
img.onerror = (e) => {
console.log(e);
};
}, []);
return (
<>
{loading ? (
<div className="loading">
<img src="/imgs/loading.gif" alt="Loading..." />
</div>
) : (
<div
className="mermaid-wrapper"
dangerouslySetInnerHTML={svg ? { __html: svg } : undefined}
/>
)}
</>
<Box position={'relative'}>
<Box
ref={dom}
className={styles.mermaid}
minH={'50px'}
py={4}
dangerouslySetInnerHTML={{ __html: svg }}
/>
<MyIcon
name={'export'}
w={'20px'}
position={'absolute'}
color={'myGray.600'}
_hover={{
color: 'myBlue.700'
}}
right={0}
top={0}
cursor={'pointer'}
onClick={onclickExport}
/>
</Box>
);
};
export default MermaidCodeBlock;
export default memo(MermaidBlock);

View File

@@ -1,5 +1,10 @@
import React from 'react';
export const codeLight: { [key: string]: React.CSSProperties } = {
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
import { Box, Flex, useColorModeValue } from '@chakra-ui/react';
import Icon from '@/components/Icon';
import { useCopyData } from '@/utils/tools';
const codeLight: { [key: string]: React.CSSProperties } = {
'code[class*=language-]': {
color: '#d4d4d4',
textShadow: 'none',
@@ -277,3 +282,51 @@ export const codeLight: { [key: string]: React.CSSProperties } = {
zIndex: '0'
}
};
const CodeLight = ({
children,
className,
inline,
match,
...props
}: {
children: React.ReactNode & React.ReactNode[];
className?: string;
inline?: boolean;
match: RegExpExecArray | null;
}) => {
const { copyData } = useCopyData();
if (!inline && match) {
return (
<Box my={3} borderRadius={'md'} overflow={'overlay'} backgroundColor={'#222'}>
<Flex
className="code-header"
py={2}
px={5}
backgroundColor={useColorModeValue('#323641', 'gray.600')}
color={'#fff'}
fontSize={'sm'}
userSelect={'none'}
>
<Box flex={1}>{match?.[1]}</Box>
<Flex cursor={'pointer'} onClick={() => copyData(String(children))} alignItems={'center'}>
<Icon name={'copy'} width={15} height={15} fill={'#fff'}></Icon>
<Box ml={1}></Box>
</Flex>
</Flex>
<SyntaxHighlighter style={codeLight as any} language={match?.[1]} PreTag="pre" {...props}>
{String(children)}
</SyntaxHighlighter>
</Box>
);
}
return (
<code className={className} {...props}>
{children}
</code>
);
};
export default React.memo(CodeLight);

View File

@@ -416,3 +416,12 @@
}
}
}
.mermaid {
overflow-x: auto;
svg {
height: auto !important;
width: auto;
}
}

View File

@@ -1,17 +1,16 @@
import React, { memo, useMemo, useEffect } from 'react';
import ReactMarkdown from 'react-markdown';
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
import { Box, Flex, useColorModeValue } from '@chakra-ui/react';
import { useCopyData, formatLinkText } from '@/utils/tools';
import Icon from '@/components/Icon';
import { formatLinkText } from '@/utils/tools';
import remarkGfm from 'remark-gfm';
import remarkMath from 'remark-math';
import remarkBreaks from 'remark-breaks';
import rehypeKatex from 'rehype-katex';
import MermaidCodeBlock from './MermaidCodeBlock';
import 'katex/dist/katex.min.css';
import styles from './index.module.scss';
import { codeLight } from './codeLight';
import CodeLight from './codeLight';
import Loading from './Loading';
import MermaidCodeBlock from './MermaidCodeBlock';
const Markdown = ({
source,
@@ -22,8 +21,6 @@ const Markdown = ({
formatLink?: boolean;
isChatting?: boolean;
}) => {
const { copyData } = useCopyData();
const formatSource = useMemo(() => {
return formatLink ? formatLinkText(source) : source;
}, [source, formatLink]);
@@ -31,53 +28,25 @@ const Markdown = ({
return (
<ReactMarkdown
className={`markdown ${styles.markdown}
${
isChatting
? source === ""
? styles.waitingAnimation
: styles.animation
: ""
}
${isChatting ? (source === '' ? styles.waitingAnimation : styles.animation) : ''}
`}
remarkPlugins={[remarkMath]}
rehypePlugins={[remarkGfm, rehypeKatex]}
remarkPlugins={[remarkGfm, remarkMath, remarkBreaks]}
rehypePlugins={[rehypeKatex]}
components={{
pre: "div",
pre: 'div',
code({ node, inline, className, children, ...props }) {
const match = /language-(\w+)/.exec(className ||'');
const code = String(children);
const match = /language-(\w+)/.exec(className || '');
if (match && match[1] === "mermaid") {
return <MermaidCodeBlock code={code} />;
if (match?.[1] === 'mermaid') {
return isChatting ? <Loading /> : <MermaidCodeBlock code={String(children)} />;
}
return !inline && match ? (
<Box my={3} borderRadius={"md"} overflow={"overlay"} backgroundColor={"#222"}>
<Flex
className="code-header"
py={2}
px={5}
backgroundColor={useColorModeValue("#323641", "gray.600")}
color={"#fff"}
fontSize={"sm"}
userSelect={"none"}
>
<Box flex={1}>{match?.[1]}</Box>
<Flex cursor={"pointer"} onClick={() => copyData(code)} alignItems={"center"}>
<Icon name={"copy"} width={15} height={15} fill={"#fff"}></Icon>
<Box ml={1}></Box>
</Flex>
</Flex>
<SyntaxHighlighter style={codeLight as any} language={match?.[1]} PreTag="pre" {...props}>
{code}
</SyntaxHighlighter>
</Box>
) : (
<code className={className} {...props}>
return (
<CodeLight className={className} inline={inline} match={match} {...props}>
{children}
</code>
</CodeLight>
);
},
}
}}
linkTarget="_blank"
>

View File

@@ -1,19 +0,0 @@
declare module "mermaid" {
import mermaidAPI from "mermaid";
const mermaid: any;
export default mermaid;
// 扩展 mermaidAPI
interface MermaidAPI extends mermaidAPI.mermaidAPI {
contentLoaded: (
targetEl: Element,
options?: mermaidAPI.mermaidAPI.Config
) => void;
}
const mermaidAPIInstance: MermaidAPI;
export default mermaidAPIInstance;
}
type Dispatch = (action: Action) => void;