Fix katex rendering
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
<script setup lang="ts">
|
||||
import {HTMLString} from '../types'
|
||||
import {computed} from 'vue'
|
||||
import {MathStatement} from '../support/parse'
|
||||
|
||||
@@ -8,8 +7,10 @@ const props = defineProps<{
|
||||
size?: 'big' | 'small',
|
||||
}>()
|
||||
|
||||
let displayHtml: HTMLString = props.statement.toHTMLString()
|
||||
computed(() => displayHtml = props.statement.toHTMLString())
|
||||
const getRenderedHTML = () => props.statement.toHTMLString()
|
||||
|
||||
const renderedHtml = getRenderedHTML()
|
||||
computed(getRenderedHTML)
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@@ -23,7 +24,7 @@ computed(() => displayHtml = props.statement.toHTMLString())
|
||||
</style>
|
||||
|
||||
<template>
|
||||
<div class="big" v-if="props?.size === 'big'" v-html="displayHtml"></div>
|
||||
<div class="small" v-else-if="props?.size === 'small'" v-html="displayHtml"></div>
|
||||
<div v-else v-html="displayHtml"></div>
|
||||
<div ref="container" class="big" v-if="props?.size === 'big'" v-html="renderedHtml"></div>
|
||||
<div ref="container" class="small" v-else-if="props?.size === 'small'" v-html="renderedHtml"></div>
|
||||
<div ref="container" v-else v-html="renderedHtml"></div>
|
||||
</template>
|
||||
|
||||
@@ -4,6 +4,9 @@ import { DraggablePlugin } from '@braks/revue-draggable'
|
||||
import { createAuth0 } from '@auth0/auth0-vue'
|
||||
import router from './router'
|
||||
|
||||
import 'katex/dist/katex.min.css'
|
||||
import 'katex/dist/contrib/auto-render.min'
|
||||
|
||||
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
@@ -284,15 +284,18 @@ export class MathStatement {
|
||||
/** Render the statement as HTML string. */
|
||||
toHTMLString(): HTMLString {
|
||||
return katex.renderToString(this.toLaTeX(), {
|
||||
output: 'mathml',
|
||||
output: 'html',
|
||||
}) as HTMLString
|
||||
}
|
||||
|
||||
/** Render the statement to a DOM element. */
|
||||
toDOM(): HTMLSpanElement {
|
||||
const node = document.createElement('span')
|
||||
toDOM(node?: HTMLElement): HTMLSpanElement {
|
||||
if ( !node ) {
|
||||
node = document.createElement('span')
|
||||
}
|
||||
|
||||
katex.render(this.toLaTeX(), node, {
|
||||
output: 'mathml',
|
||||
output: 'html',
|
||||
})
|
||||
return node
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user