Merge pull request #68 from OctopBP/feature/code-highlight

Replace `Code` with `Prism`
This commit is contained in:
SuperDev 2024-02-04 19:04:53 -06:00 committed by GitHub
commit 4e473c4965
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 1438 additions and 1425 deletions

179
package-lock.json generated
View file

@ -8,10 +8,11 @@
"dependencies": {
"@emotion/react": "^11.10.6",
"@emotion/server": "^11.10.0",
"@mantine/core": "^6.0.1",
"@mantine/hooks": "^6.0.1",
"@mantine/next": "^6.0.1",
"@mantine/notifications": "^6.0.1",
"@mantine/core": "^6.0.17",
"@mantine/hooks": "^6.0.17",
"@mantine/next": "^6.0.17",
"@mantine/notifications": "^6.0.17",
"@mantine/prism": "^6.0.17",
"@tabler/icons-react": "^2.9.0",
"@tanstack/react-location": "^3.7.4",
"@types/node": "18.15.0",
@ -29,6 +30,8 @@
"next": "13.2.4",
"openai": "^3.2.1",
"openai-ext": "^1.2.6",
"prism-react-renderer": "^1.3.1",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^4.8.0",
@ -45,6 +48,7 @@
"buffer": "^5.7.1",
"parcel": "^2.8.3",
"parcel-reporter-static-files-copy": "^1.5.0",
"path-browserify": "^1.0.1",
"process": "^0.11.10"
}
},
@ -582,38 +586,38 @@
]
},
"node_modules/@mantine/core": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.2.tgz",
"integrity": "sha512-FP/qaMBzh2dDrZIFSAJB3vogWK3U8+nnwImKa+/ceo7EJLeauLNAssaoWn2TVnA6x5mIZnlPwkDtVqI8Q+K9Ww==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.17.tgz",
"integrity": "sha512-g3EDxcTJKisvEGTsGJPCGXiDumwr4O0nGNXwoGLnrg19nh3FAMfEIq18sJJLtRrBuarSbrvgMVYvKx1R6rTOWg==",
"dependencies": {
"@floating-ui/react": "^0.19.1",
"@mantine/styles": "6.0.2",
"@mantine/utils": "6.0.2",
"@mantine/styles": "6.0.17",
"@mantine/utils": "6.0.17",
"@radix-ui/react-scroll-area": "1.0.2",
"react-remove-scroll": "^2.5.5",
"react-textarea-autosize": "8.3.4"
},
"peerDependencies": {
"@mantine/hooks": "6.0.2",
"@mantine/hooks": "6.0.17",
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
},
"node_modules/@mantine/hooks": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.2.tgz",
"integrity": "sha512-wLSkp0NRe4XN7JujIUvkKghIBJC9YZ33CJlrFbcBFLD6LiSLX7lWyWOsiFzXrPND0Hpgn3AjckFQGblA8n34XA==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.17.tgz",
"integrity": "sha512-7vf2w1NlzKlUynSuyI2DAIKoEOYKYC8k+tlSsk3BRdbzhbJAiWxcYzJy5seg5dFW1WIpKAZ0wiVdHXf/WRlRgg==",
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/@mantine/next": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/next/-/next-6.0.2.tgz",
"integrity": "sha512-yQrsqu19r9aLU8/q0hhsUjuTV8MRf3vTQz2Lv6Fvm+dGIef+ZvMVaTrRodvX/qepF5YWAmyRUg5jgwENsyDSXQ==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/next/-/next-6.0.17.tgz",
"integrity": "sha512-/JmKysJ0blftAU8+YtWZ4m3MIXUtiyaPXamEYCkcv+V+8oAa9x4EquX/eK6gOVbEEhUoHGCbIZ3nt54NQiC2dQ==",
"dependencies": {
"@mantine/ssr": "6.0.2",
"@mantine/styles": "6.0.2"
"@mantine/ssr": "6.0.17",
"@mantine/styles": "6.0.17"
},
"peerDependencies": {
"next": "*",
@ -622,26 +626,41 @@
}
},
"node_modules/@mantine/notifications": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.2.tgz",
"integrity": "sha512-EpQgTl5j925N88WY05etFe5ov71UnJRep6nGwv+CVATXmNV8E8z4b+2R6B5ofg4bW9VkS2BJKT2TgKRzaCMLeg==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.17.tgz",
"integrity": "sha512-iY8hdRG4RcrsA7U06AOWLbKrQJAzEhKi2mESOnGE4s7RBWJjLTXJf+gTKi+QtVa3XNIF0I/adpEh8MEFD5zGWw==",
"dependencies": {
"@mantine/utils": "6.0.2",
"@mantine/utils": "6.0.17",
"react-transition-group": "4.4.2"
},
"peerDependencies": {
"@mantine/core": "6.0.2",
"@mantine/hooks": "6.0.2",
"@mantine/core": "6.0.17",
"@mantine/hooks": "6.0.17",
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
},
"node_modules/@mantine/prism": {
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/prism/-/prism-6.0.17.tgz",
"integrity": "sha512-oUnvLIU/ERvGqYVDasVIQH5pJpmi4DooGB5tucef1uS7u/rt68iAaNKCpPK4ghYZekCC8VO/cXdB9BzZACj5EA==",
"dependencies": {
"@mantine/utils": "6.0.17",
"prism-react-renderer": "^1.2.1"
},
"peerDependencies": {
"@mantine/core": "6.0.17",
"@mantine/hooks": "6.0.17",
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
},
"node_modules/@mantine/ssr": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/ssr/-/ssr-6.0.2.tgz",
"integrity": "sha512-s7F0LtKVdGflbV/2ofCUcdoEQlCpnspBIOPW2IORk7Ysab/XE/Ea2nphtfStNZcYZXk9haOVp50Yi8yAxzBOVg==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/ssr/-/ssr-6.0.17.tgz",
"integrity": "sha512-l4G0GROr/1w96uWmEMrczwxLF5BSR0b2uK/ErTrq6+ozmrFSl+LvU/JKoYnyoo+bgbfhVn8dpNOxpkOYF5fTDg==",
"dependencies": {
"@mantine/styles": "6.0.2",
"@mantine/styles": "6.0.17",
"html-react-parser": "1.4.12"
},
"peerDependencies": {
@ -652,9 +671,9 @@
}
},
"node_modules/@mantine/styles": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.2.tgz",
"integrity": "sha512-py5yWzCPSYAv/4NwQ+dHaei0Rmk8kQ/ls5i3u28y6U+fCoutRhlCPJKjPfOWQzFpSRS0oGPdChFdg6zn4r8YIA==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.17.tgz",
"integrity": "sha512-utNwQJgKHguNS0iPyyeFRJy4nbt280XMbmfUf4GCxXlyl/mQxq+JoaKP/OmU7+8kfbtLS9kHeuBSghrC65Nt1g==",
"dependencies": {
"clsx": "1.1.1",
"csstype": "3.0.9"
@ -671,9 +690,9 @@
"integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw=="
},
"node_modules/@mantine/utils": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.2.tgz",
"integrity": "sha512-fx+cmkb8PMpkr65nUs8YgaXFJbtNY+ybSXDfBxwFAWMTLAocbNo7vjkSvPWZVS1O2szPK/s4Rqdw0W76dyG4+w==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.17.tgz",
"integrity": "sha512-U6SWV/asYE6NhiHx4ltmVZdQR3HwGVqJxVulhOylMcV1tX/P1LMQUCbGV2Oe4O9jbX4/YW5B/CBb4BbEhENQFQ==",
"peerDependencies": {
"react": ">=16.8.0"
}
@ -6972,6 +6991,22 @@
"node": ">= 0.8.0"
}
},
"node_modules/prism-react-renderer": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
"integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
"peerDependencies": {
"react": ">=0.14.9"
}
},
"node_modules/prismjs": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
"integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@ -8823,55 +8858,64 @@
"optional": true
},
"@mantine/core": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.2.tgz",
"integrity": "sha512-FP/qaMBzh2dDrZIFSAJB3vogWK3U8+nnwImKa+/ceo7EJLeauLNAssaoWn2TVnA6x5mIZnlPwkDtVqI8Q+K9Ww==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-6.0.17.tgz",
"integrity": "sha512-g3EDxcTJKisvEGTsGJPCGXiDumwr4O0nGNXwoGLnrg19nh3FAMfEIq18sJJLtRrBuarSbrvgMVYvKx1R6rTOWg==",
"requires": {
"@floating-ui/react": "^0.19.1",
"@mantine/styles": "6.0.2",
"@mantine/utils": "6.0.2",
"@mantine/styles": "6.0.17",
"@mantine/utils": "6.0.17",
"@radix-ui/react-scroll-area": "1.0.2",
"react-remove-scroll": "^2.5.5",
"react-textarea-autosize": "8.3.4"
}
},
"@mantine/hooks": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.2.tgz",
"integrity": "sha512-wLSkp0NRe4XN7JujIUvkKghIBJC9YZ33CJlrFbcBFLD6LiSLX7lWyWOsiFzXrPND0Hpgn3AjckFQGblA8n34XA==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-6.0.17.tgz",
"integrity": "sha512-7vf2w1NlzKlUynSuyI2DAIKoEOYKYC8k+tlSsk3BRdbzhbJAiWxcYzJy5seg5dFW1WIpKAZ0wiVdHXf/WRlRgg==",
"requires": {}
},
"@mantine/next": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/next/-/next-6.0.2.tgz",
"integrity": "sha512-yQrsqu19r9aLU8/q0hhsUjuTV8MRf3vTQz2Lv6Fvm+dGIef+ZvMVaTrRodvX/qepF5YWAmyRUg5jgwENsyDSXQ==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/next/-/next-6.0.17.tgz",
"integrity": "sha512-/JmKysJ0blftAU8+YtWZ4m3MIXUtiyaPXamEYCkcv+V+8oAa9x4EquX/eK6gOVbEEhUoHGCbIZ3nt54NQiC2dQ==",
"requires": {
"@mantine/ssr": "6.0.2",
"@mantine/styles": "6.0.2"
"@mantine/ssr": "6.0.17",
"@mantine/styles": "6.0.17"
}
},
"@mantine/notifications": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.2.tgz",
"integrity": "sha512-EpQgTl5j925N88WY05etFe5ov71UnJRep6nGwv+CVATXmNV8E8z4b+2R6B5ofg4bW9VkS2BJKT2TgKRzaCMLeg==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-6.0.17.tgz",
"integrity": "sha512-iY8hdRG4RcrsA7U06AOWLbKrQJAzEhKi2mESOnGE4s7RBWJjLTXJf+gTKi+QtVa3XNIF0I/adpEh8MEFD5zGWw==",
"requires": {
"@mantine/utils": "6.0.2",
"@mantine/utils": "6.0.17",
"react-transition-group": "4.4.2"
}
},
"@mantine/ssr": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/ssr/-/ssr-6.0.2.tgz",
"integrity": "sha512-s7F0LtKVdGflbV/2ofCUcdoEQlCpnspBIOPW2IORk7Ysab/XE/Ea2nphtfStNZcYZXk9haOVp50Yi8yAxzBOVg==",
"@mantine/prism": {
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/prism/-/prism-6.0.17.tgz",
"integrity": "sha512-oUnvLIU/ERvGqYVDasVIQH5pJpmi4DooGB5tucef1uS7u/rt68iAaNKCpPK4ghYZekCC8VO/cXdB9BzZACj5EA==",
"requires": {
"@mantine/styles": "6.0.2",
"@mantine/utils": "6.0.17",
"prism-react-renderer": "^1.2.1"
}
},
"@mantine/ssr": {
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/ssr/-/ssr-6.0.17.tgz",
"integrity": "sha512-l4G0GROr/1w96uWmEMrczwxLF5BSR0b2uK/ErTrq6+ozmrFSl+LvU/JKoYnyoo+bgbfhVn8dpNOxpkOYF5fTDg==",
"requires": {
"@mantine/styles": "6.0.17",
"html-react-parser": "1.4.12"
}
},
"@mantine/styles": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.2.tgz",
"integrity": "sha512-py5yWzCPSYAv/4NwQ+dHaei0Rmk8kQ/ls5i3u28y6U+fCoutRhlCPJKjPfOWQzFpSRS0oGPdChFdg6zn4r8YIA==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/styles/-/styles-6.0.17.tgz",
"integrity": "sha512-utNwQJgKHguNS0iPyyeFRJy4nbt280XMbmfUf4GCxXlyl/mQxq+JoaKP/OmU7+8kfbtLS9kHeuBSghrC65Nt1g==",
"requires": {
"clsx": "1.1.1",
"csstype": "3.0.9"
@ -8885,9 +8929,9 @@
}
},
"@mantine/utils": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.2.tgz",
"integrity": "sha512-fx+cmkb8PMpkr65nUs8YgaXFJbtNY+ybSXDfBxwFAWMTLAocbNo7vjkSvPWZVS1O2szPK/s4Rqdw0W76dyG4+w==",
"version": "6.0.17",
"resolved": "https://registry.npmjs.org/@mantine/utils/-/utils-6.0.17.tgz",
"integrity": "sha512-U6SWV/asYE6NhiHx4ltmVZdQR3HwGVqJxVulhOylMcV1tX/P1LMQUCbGV2Oe4O9jbX4/YW5B/CBb4BbEhENQFQ==",
"requires": {}
},
"@mischnic/json-sourcemap": {
@ -13072,6 +13116,17 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prism-react-renderer": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
"integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
"requires": {}
},
"prismjs": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
"integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",

View file

@ -25,10 +25,11 @@
"dependencies": {
"@emotion/react": "^11.10.6",
"@emotion/server": "^11.10.0",
"@mantine/core": "^6.0.1",
"@mantine/hooks": "^6.0.1",
"@mantine/next": "^6.0.1",
"@mantine/notifications": "^6.0.1",
"@mantine/core": "^6.0.17",
"@mantine/hooks": "^6.0.17",
"@mantine/next": "^6.0.17",
"@mantine/notifications": "^6.0.17",
"@mantine/prism": "^6.0.17",
"@tabler/icons-react": "^2.9.0",
"@tanstack/react-location": "^3.7.4",
"@types/node": "18.15.0",
@ -46,6 +47,8 @@
"next": "13.2.4",
"openai": "^3.2.1",
"openai-ext": "^1.2.6",
"prism-react-renderer": "^1.3.1",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^4.8.0",

View file

@ -10,7 +10,7 @@ import {
ThemeIcon,
Tooltip,
} from "@mantine/core";
import { useClipboard } from "@mantine/hooks";
import { Prism } from "@mantine/prism";
import { IconCopy, IconUser } from "@tabler/icons-react";
import { useMemo } from "react";
import ReactMarkdown from "react-markdown";
@ -20,9 +20,9 @@ import "../styles/markdown.scss";
import { CreatePromptModal } from "./CreatePromptModal";
import { LogoIcon } from "./Logo";
import { ScrollIntoView } from "./ScrollIntoView";
import "../utils/prisma-setup";
export function MessageItem({ message }: { message: Message }) {
const clipboard = useClipboard({ timeout: 500 });
const wordCount = useMemo(() => {
var matches = message.content.match(/[\w\d\\'-\(\)]+/gi);
return matches ? matches.length : 0;
@ -46,29 +46,21 @@ export function MessageItem({ message }: { message: Message }) {
table: ({ node, ...props }) => (
<Table verticalSpacing="sm" highlightOnHover {...props} />
),
code: ({ node, inline, ...props }) =>
inline ? (
code: ({ node, inline, className, lang, ...props }) => {
const languageMatch = /language-(\w+)/.exec(className || "");
const language = languageMatch ? languageMatch[1] : undefined;
return inline ? (
<Code {...props} />
) : (
<Box sx={{ position: "relative" }}>
<Code block {...props} />
<CopyButton value={String(props.children)}>
{({ copied, copy }) => (
<Tooltip
label={copied ? "Copied" : "Copy"}
position="left"
>
<ActionIcon
sx={{ position: "absolute", top: 4, right: 4 }}
onClick={copy}
>
<IconCopy opacity={0.4} size={20} />
</ActionIcon>
</Tooltip>
)}
</CopyButton>
<Prism
language={language as any}
children={`${props.children as string}`}
/>
</Box>
),
);
},
}}
/>
{message.role === "assistant" && (

282
src/utils/prisma-setup.ts Normal file
View file

@ -0,0 +1,282 @@
import { Prism } from "prism-react-renderer";
declare global {
interface Window {
Prism: any;
}
}
window.Prism = Prism;
// Load all languages like this as webpack doesn't detect prism's loadLanguages call and doesn't load any
require("prismjs/components/prism-abap");
require("prismjs/components/prism-abnf");
require("prismjs/components/prism-actionscript");
require("prismjs/components/prism-ada");
require("prismjs/components/prism-agda");
require("prismjs/components/prism-al");
require("prismjs/components/prism-antlr4");
require("prismjs/components/prism-apacheconf");
require("prismjs/components/prism-apex");
require("prismjs/components/prism-apl");
require("prismjs/components/prism-applescript");
require("prismjs/components/prism-aql");
require("prismjs/components/prism-arduino");
require("prismjs/components/prism-arff");
require("prismjs/components/prism-asciidoc");
require("prismjs/components/prism-asm6502");
require("prismjs/components/prism-asmatmel");
require("prismjs/components/prism-aspnet");
require("prismjs/components/prism-autohotkey");
require("prismjs/components/prism-autoit");
require("prismjs/components/prism-avisynth");
require("prismjs/components/prism-avro-idl");
require("prismjs/components/prism-bash");
require("prismjs/components/prism-basic");
require("prismjs/components/prism-batch");
require("prismjs/components/prism-bbcode");
require("prismjs/components/prism-bicep");
require("prismjs/components/prism-birb");
require("prismjs/components/prism-bison");
require("prismjs/components/prism-bnf");
require("prismjs/components/prism-brainfuck");
require("prismjs/components/prism-brightscript");
require("prismjs/components/prism-bro");
require("prismjs/components/prism-bsl");
require("prismjs/components/prism-c");
require("prismjs/components/prism-cfscript");
require("prismjs/components/prism-chaiscript");
require("prismjs/components/prism-cil");
require("prismjs/components/prism-clike");
require("prismjs/components/prism-clojure");
require("prismjs/components/prism-cmake");
require("prismjs/components/prism-cobol");
require("prismjs/components/prism-coffeescript");
require("prismjs/components/prism-concurnas");
require("prismjs/components/prism-coq");
require("prismjs/components/prism-cpp");
require("prismjs/components/prism-csharp");
require("prismjs/components/prism-cshtml");
require("prismjs/components/prism-csp");
require("prismjs/components/prism-css");
require("prismjs/components/prism-css-extras");
require("prismjs/components/prism-csv");
require("prismjs/components/prism-cypher");
require("prismjs/components/prism-d");
require("prismjs/components/prism-dart");
require("prismjs/components/prism-dataweave");
require("prismjs/components/prism-dax");
require("prismjs/components/prism-dhall");
require("prismjs/components/prism-diff");
require("prismjs/components/prism-django");
require("prismjs/components/prism-dns-zone-file");
require("prismjs/components/prism-docker");
require("prismjs/components/prism-dot");
require("prismjs/components/prism-ebnf");
require("prismjs/components/prism-editorconfig");
require("prismjs/components/prism-eiffel");
require("prismjs/components/prism-ejs");
require("prismjs/components/prism-elixir");
require("prismjs/components/prism-elm");
require("prismjs/components/prism-erb");
require("prismjs/components/prism-erlang");
require("prismjs/components/prism-etlua");
require("prismjs/components/prism-excel-formula");
require("prismjs/components/prism-factor");
require("prismjs/components/prism-false");
require("prismjs/components/prism-firestore-security-rules");
require("prismjs/components/prism-flow");
require("prismjs/components/prism-fortran");
require("prismjs/components/prism-fsharp");
require("prismjs/components/prism-ftl");
require("prismjs/components/prism-gap");
require("prismjs/components/prism-gcode");
require("prismjs/components/prism-gdscript");
require("prismjs/components/prism-gedcom");
require("prismjs/components/prism-gherkin");
require("prismjs/components/prism-git");
require("prismjs/components/prism-glsl");
require("prismjs/components/prism-gml");
require("prismjs/components/prism-gn");
require("prismjs/components/prism-go");
require("prismjs/components/prism-go-module");
require("prismjs/components/prism-graphql");
require("prismjs/components/prism-groovy");
require("prismjs/components/prism-haml");
require("prismjs/components/prism-handlebars");
require("prismjs/components/prism-haskell");
require("prismjs/components/prism-haxe");
require("prismjs/components/prism-hcl");
require("prismjs/components/prism-hlsl");
require("prismjs/components/prism-hoon");
require("prismjs/components/prism-hpkp");
require("prismjs/components/prism-hsts");
require("prismjs/components/prism-http");
require("prismjs/components/prism-ichigojam");
require("prismjs/components/prism-icon");
require("prismjs/components/prism-icu-message-format");
require("prismjs/components/prism-idris");
require("prismjs/components/prism-iecst");
require("prismjs/components/prism-ignore");
require("prismjs/components/prism-inform7");
require("prismjs/components/prism-ini");
require("prismjs/components/prism-io");
require("prismjs/components/prism-j");
require("prismjs/components/prism-java");
require("prismjs/components/prism-javadoclike");
require("prismjs/components/prism-javascript");
require("prismjs/components/prism-javastacktrace");
require("prismjs/components/prism-jexl");
require("prismjs/components/prism-jolie");
require("prismjs/components/prism-jq");
require("prismjs/components/prism-js-extras");
require("prismjs/components/prism-js-templates");
require("prismjs/components/prism-jsdoc");
require("prismjs/components/prism-json");
require("prismjs/components/prism-json5");
require("prismjs/components/prism-jsonp");
require("prismjs/components/prism-jsstacktrace");
require("prismjs/components/prism-jsx");
require("prismjs/components/prism-julia");
require("prismjs/components/prism-keepalived");
require("prismjs/components/prism-keyman");
require("prismjs/components/prism-kotlin");
require("prismjs/components/prism-kumir");
require("prismjs/components/prism-kusto");
require("prismjs/components/prism-latex");
require("prismjs/components/prism-latte");
require("prismjs/components/prism-less");
require("prismjs/components/prism-lilypond");
require("prismjs/components/prism-liquid");
require("prismjs/components/prism-lisp");
require("prismjs/components/prism-livescript");
require("prismjs/components/prism-llvm");
require("prismjs/components/prism-log");
require("prismjs/components/prism-lolcode");
require("prismjs/components/prism-lua");
require("prismjs/components/prism-magma");
require("prismjs/components/prism-makefile");
require("prismjs/components/prism-markdown");
require("prismjs/components/prism-markup");
require("prismjs/components/prism-markup-templating");
require("prismjs/components/prism-matlab");
require("prismjs/components/prism-maxscript");
require("prismjs/components/prism-mel");
require("prismjs/components/prism-mermaid");
require("prismjs/components/prism-mizar");
require("prismjs/components/prism-mongodb");
require("prismjs/components/prism-monkey");
require("prismjs/components/prism-moonscript");
require("prismjs/components/prism-n1ql");
require("prismjs/components/prism-n4js");
require("prismjs/components/prism-nand2tetris-hdl");
require("prismjs/components/prism-naniscript");
require("prismjs/components/prism-nasm");
require("prismjs/components/prism-neon");
require("prismjs/components/prism-nevod");
require("prismjs/components/prism-nginx");
require("prismjs/components/prism-nim");
require("prismjs/components/prism-nix");
require("prismjs/components/prism-nsis");
require("prismjs/components/prism-objectivec");
require("prismjs/components/prism-ocaml");
require("prismjs/components/prism-opencl");
require("prismjs/components/prism-openqasm");
require("prismjs/components/prism-oz");
require("prismjs/components/prism-parigp");
require("prismjs/components/prism-parser");
require("prismjs/components/prism-pascal");
require("prismjs/components/prism-pascaligo");
require("prismjs/components/prism-pcaxis");
require("prismjs/components/prism-peoplecode");
require("prismjs/components/prism-perl");
require("prismjs/components/prism-php");
require("prismjs/components/prism-php-extras");
require("prismjs/components/prism-phpdoc");
require("prismjs/components/prism-plsql");
require("prismjs/components/prism-powerquery");
require("prismjs/components/prism-powershell");
require("prismjs/components/prism-processing");
require("prismjs/components/prism-prolog");
require("prismjs/components/prism-promql");
require("prismjs/components/prism-properties");
require("prismjs/components/prism-protobuf");
require("prismjs/components/prism-psl");
require("prismjs/components/prism-pug");
require("prismjs/components/prism-puppet");
require("prismjs/components/prism-pure");
require("prismjs/components/prism-purebasic");
require("prismjs/components/prism-purescript");
require("prismjs/components/prism-python");
require("prismjs/components/prism-q");
require("prismjs/components/prism-qml");
require("prismjs/components/prism-qore");
require("prismjs/components/prism-qsharp");
require("prismjs/components/prism-r");
require("prismjs/components/prism-reason");
require("prismjs/components/prism-regex");
require("prismjs/components/prism-rego");
require("prismjs/components/prism-renpy");
require("prismjs/components/prism-rest");
require("prismjs/components/prism-rip");
require("prismjs/components/prism-roboconf");
require("prismjs/components/prism-robotframework");
require("prismjs/components/prism-ruby");
require("prismjs/components/prism-rust");
require("prismjs/components/prism-sas");
require("prismjs/components/prism-sass");
require("prismjs/components/prism-scala");
require("prismjs/components/prism-scheme");
require("prismjs/components/prism-scss");
require("prismjs/components/prism-shell-session");
require("prismjs/components/prism-smali");
require("prismjs/components/prism-smalltalk");
require("prismjs/components/prism-smarty");
require("prismjs/components/prism-sml");
require("prismjs/components/prism-solidity");
require("prismjs/components/prism-solution-file");
require("prismjs/components/prism-soy");
require("prismjs/components/prism-splunk-spl");
require("prismjs/components/prism-sqf");
require("prismjs/components/prism-sql");
require("prismjs/components/prism-squirrel");
require("prismjs/components/prism-stan");
require("prismjs/components/prism-stylus");
require("prismjs/components/prism-swift");
require("prismjs/components/prism-systemd");
require("prismjs/components/prism-t4-templating");
require("prismjs/components/prism-t4-vb");
require("prismjs/components/prism-tap");
require("prismjs/components/prism-tcl");
require("prismjs/components/prism-textile");
require("prismjs/components/prism-toml");
require("prismjs/components/prism-tremor");
require("prismjs/components/prism-tsx");
require("prismjs/components/prism-tt2");
require("prismjs/components/prism-turtle");
require("prismjs/components/prism-twig");
require("prismjs/components/prism-typescript");
require("prismjs/components/prism-typoscript");
require("prismjs/components/prism-unrealscript");
require("prismjs/components/prism-uri");
require("prismjs/components/prism-v");
require("prismjs/components/prism-vala");
require("prismjs/components/prism-vbnet");
require("prismjs/components/prism-velocity");
require("prismjs/components/prism-verilog");
require("prismjs/components/prism-vhdl");
require("prismjs/components/prism-vim");
require("prismjs/components/prism-visual-basic");
require("prismjs/components/prism-warpscript");
require("prismjs/components/prism-wasm");
require("prismjs/components/prism-web-idl");
require("prismjs/components/prism-wiki");
require("prismjs/components/prism-wolfram");
require("prismjs/components/prism-wren");
require("prismjs/components/prism-xeora");
require("prismjs/components/prism-xml-doc");
require("prismjs/components/prism-xojo");
require("prismjs/components/prism-xquery");
require("prismjs/components/prism-yaml");
require("prismjs/components/prism-yang");
require("prismjs/components/prism-zig");

2357
yarn.lock

File diff suppressed because it is too large Load diff