open-webui/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte

23 lines
575 B
Svelte
Raw Normal View History

2024-08-08 22:01:38 +00:00
<script lang="ts">
import type { renderToString as katexRenderToString } from 'katex';
import { onMount } from 'svelte';
2024-08-08 22:01:38 +00:00
export let content: string;
export let displayMode: boolean = false;
let renderToString: typeof katexRenderToString | null = null;
onMount(async () => {
const [katex] = await Promise.all([
import('katex'),
import('katex/contrib/mhchem'),
2025-09-17 16:11:46 +00:00
import('katex/dist/katex.min.css')
]);
renderToString = katex.renderToString;
});
2024-08-08 22:01:38 +00:00
</script>
{#if renderToString}
{@html renderToString(content, { displayMode, throwOnError: false })}
{/if}