26 lines
576 B
Vue
26 lines
576 B
Vue
<template>
|
|
<template
|
|
v-if="model && model.length > 0">
|
|
<MarkdownRenderer :key="key" v-if="node" :node="node"></MarkdownRenderer>
|
|
</template>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { hash } from 'ohash'
|
|
import { watch, computed } from 'vue'
|
|
import type { Root } from 'hast';
|
|
|
|
const model = defineModel<string>();
|
|
|
|
const parser = useMarkdown();
|
|
const key = computed(() => hash(model.value));
|
|
|
|
const node = ref<Root>();
|
|
|
|
watch(model, async () => {
|
|
if(model.value && model.value)
|
|
{
|
|
node.value = parser(model.value);
|
|
}
|
|
}, { immediate: true });
|
|
</script> |