elk/components/content/ContentCode.vue
2022-11-26 04:19:48 +08:00

23 lines
489 B
Vue

<script setup lang="ts">
const props = defineProps<{
code: string
lang: string
}>()
const raw = $computed(() => decodeURIComponent(props.code).replace(/&#39;/g, '\''))
const langMap: Record<string, string> = {
js: 'javascript',
ts: 'typescript',
vue: 'html',
}
const hightlighted = computed(() => {
return props.lang ? highlightCode(raw, langMap[props.lang] || props.lang as any) : raw
})
</script>
<template>
<pre class="code-block" v-html="hightlighted" />
</template>