|
@@ -1,10 +1,22 @@
|
|
|
<script lang="ts">
|
|
|
- import katex from 'katex';
|
|
|
- import 'katex/contrib/mhchem';
|
|
|
- import 'katex/dist/katex.min.css';
|
|
|
+ import type { renderToString as katexRenderToString } from 'katex';
|
|
|
+ import { onMount } from 'svelte';
|
|
|
|
|
|
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'),
|
|
|
+ import('katex/dist/katex.min.css'),
|
|
|
+ ]);
|
|
|
+ renderToString = katex.renderToString;
|
|
|
+ });
|
|
|
</script>
|
|
|
|
|
|
-{@html katex.renderToString(content, { displayMode, throwOnError: false })}
|
|
|
+{#if renderToString}
|
|
|
+ {@html renderToString(content, { displayMode, throwOnError: false })}
|
|
|
+{/if}
|