mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-24 00:36:14 -04:00
refactor(about, i18n): improved i18n dx with markdown (#753)
This commit is contained in:
parent
de1ee69ef9
commit
bd3edcb528
8 changed files with 113 additions and 79 deletions
18
src/ui/c-markdown/c-markdown.demo.vue
Normal file
18
src/ui/c-markdown/c-markdown.demo.vue
Normal file
|
@ -0,0 +1,18 @@
|
|||
<script setup lang="ts">
|
||||
const md = `
|
||||
# IT Tools
|
||||
|
||||
## About
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, nisl quis
|
||||
mollis blandit, nunc nisl aliquam nunc, vitae aliquam nisl nunc vitae nisl.
|
||||
|
||||
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
- Sed euismod, nisl quis mollis blandit, nunc nisl aliquam nunc, vitae aliquam nisl nunc vitae nisl.
|
||||
|
||||
[it-tools](https://it-tools.tech)
|
||||
`;
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<c-markdown :markdown="md" />
|
||||
</template>
|
21
src/ui/c-markdown/c-markdown.vue
Normal file
21
src/ui/c-markdown/c-markdown.vue
Normal file
|
@ -0,0 +1,21 @@
|
|||
<script setup lang="ts">
|
||||
import { marked } from 'marked';
|
||||
import DomPurify from 'dompurify';
|
||||
|
||||
const props = withDefaults(defineProps<{ markdown?: string }>(), { markdown: '' });
|
||||
const { markdown } = toRefs(props);
|
||||
|
||||
marked.use({
|
||||
renderer: {
|
||||
link(href, title, text) {
|
||||
return `<a class="text-primary transition decoration-none hover:underline" href="${href}" target="_blank" rel="noopener">${text}</a>`;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const html = computed(() => DomPurify.sanitize(marked(markdown.value), { ADD_ATTR: ['target'] }));
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-html="html" />
|
||||
</template>
|
Loading…
Add table
Add a link
Reference in a new issue