Skip to content
Snippets Groups Projects
MarkdownRenderer.vue 519 B
Newer Older
  • Learn to ignore specific revisions
  • <script setup lang="ts">
    import showdown from "showdown";
    import DOMPurify from "dompurify";
    import { computed } from "vue";
    
    const props = defineProps<{
      markdown: string;
    }>();
    
    
    const converter = new showdown.Converter({
      tables: true,
      ghCodeBLocks: false,
    });
    converter.setFlavor("github");
    
    const outputHtml = computed(() => {
      const dirtyHTML = converter.makeHtml(props.markdown);
      return DOMPurify.sanitize(dirtyHTML);
    });
    </script>
    
    <template>
      <div v-html="outputHtml"></div>
    </template>