2024-08-08 22:01:38 +00:00
|
|
|
<script lang="ts">
|
2025-09-17 04:18:16 +00:00
|
|
|
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;
|
2025-09-17 04:18:16 +00:00
|
|
|
|
|
|
|
|
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')
|
2025-09-17 04:18:16 +00:00
|
|
|
]);
|
|
|
|
|
renderToString = katex.renderToString;
|
|
|
|
|
});
|
2024-08-08 22:01:38 +00:00
|
|
|
</script>
|
|
|
|
|
|
2025-09-17 04:18:16 +00:00
|
|
|
{#if renderToString}
|
|
|
|
|
{@html renderToString(content, { displayMode, throwOnError: false })}
|
|
|
|
|
{/if}
|