diff --git a/frontend/src/utils/chat/hljs-libraries/svelte.js b/frontend/src/utils/chat/hljs-libraries/svelte.js new file mode 100644 index 00000000..f8208377 --- /dev/null +++ b/frontend/src/utils/chat/hljs-libraries/svelte.js @@ -0,0 +1,48 @@ +export default function hljsDefineSvelte(hljs) { + return { + subLanguage: "xml", + contains: [ + hljs.COMMENT("", { + relevance: 10, + }), + { + begin: /^(\s*)()/gm, + end: /^(\s*)(<\/script>)/gm, + subLanguage: "javascript", + excludeBegin: true, + excludeEnd: true, + contains: [ + { + begin: /^(\s*)(\$:)/gm, + end: /(\s*)/gm, + className: "keyword", + }, + ], + }, + { + begin: /^(\s*)()/gm, + end: /^(\s*)(<\/style>)/gm, + subLanguage: "css", + excludeBegin: true, + excludeEnd: true, + }, + { + begin: /\{/gm, + end: /\}/gm, + subLanguage: "javascript", + contains: [ + { + begin: /[\{]/, + end: /[\}]/, + skip: true, + }, + { + begin: /([#:\/@])(if|else|each|await|then|catch|debug|html)/gm, + className: "keyword", + relevance: 10, + }, + ], + }, + ], + }; +} diff --git a/frontend/src/utils/chat/markdown.js b/frontend/src/utils/chat/markdown.js index 27e077a5..b97fc7be 100644 --- a/frontend/src/utils/chat/markdown.js +++ b/frontend/src/utils/chat/markdown.js @@ -7,6 +7,10 @@ import "./themes/github-dark.css"; import "./themes/github.css"; import { v4 } from "uuid"; +// Register custom lanaguages +import hljsDefineSvelte from "./hljs-libraries/svelte"; +hljs.registerLanguage("svelte", hljsDefineSvelte); + const markdown = markdownIt({ html: Appearance.get("renderHTML") ?? false, typographer: true,