KatexRenderer.svelte 576 B

12345678910111213141516171819202122
  1. <script lang="ts">
  2. import type { renderToString as katexRenderToString } from 'katex';
  3. import { onMount } from 'svelte';
  4. export let content: string;
  5. export let displayMode: boolean = false;
  6. let renderToString: typeof katexRenderToString | null = null;
  7. onMount(async () => {
  8. const [katex] = await Promise.all([
  9. import('katex'),
  10. import('katex/contrib/mhchem'),
  11. import('katex/dist/katex.min.css'),
  12. ]);
  13. renderToString = katex.renderToString;
  14. });
  15. </script>
  16. {#if renderToString}
  17. {@html renderToString(content, { displayMode, throwOnError: false })}
  18. {/if}