mirror of
https://github.com/morgan9e/chatgpt-web
synced 2026-04-13 16:04:05 +09:00
31 lines
864 B
Svelte
31 lines
864 B
Svelte
<script lang="ts">
|
|
export let raw
|
|
import 'katex/contrib/mhchem'
|
|
import renderMathInElement from 'katex/contrib/auto-render'
|
|
|
|
let renderedMath: string | undefined
|
|
if (raw.startsWith('`\\(') || raw.startsWith('`\\[') || raw.startsWith('`$') || raw.startsWith('`$$')) {
|
|
const dummy = document.createElement('div')
|
|
dummy.textContent = raw.replace(/`/g, '')
|
|
renderMathInElement(dummy, {
|
|
delimiters: [
|
|
{ left: '\\(', right: '\\)', display: false },
|
|
{ left: '\\[', right: '\\]', display: true },
|
|
{ left: '$', right: '$', display: false },
|
|
{ left: '$$', right: '$$', display: true }
|
|
],
|
|
throwOnError: false,
|
|
output: 'html'
|
|
})
|
|
renderedMath = dummy.innerHTML
|
|
dummy.remove()
|
|
}
|
|
|
|
</script>
|
|
|
|
{#if renderedMath}
|
|
{@html renderedMath}
|
|
{:else}
|
|
<code>{raw.replace(/`/g, '')}</code>
|
|
{/if}
|