Vite+Vue3+TS中解决PrismJS显示JSON数据不高亮的问题

Vite+Vue3+TS中解决PrismJS显示JSON数据不高亮的问题

在使用prismjs库高亮代码的时候,HTML、JS和CSS都能正常高亮,但是在现实JSON数据的时候就不高亮,经过一番折腾,最后解决办法如下:

必须导入js高亮组件

没错,就是这句

js 复制代码
import "prismjs/components/prism-json"

想要显示舒服的代码字体,可以单独设置字体

css 复制代码
pre {
	span {
	    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
	}
	code {
	    font-size: 16px !important;
	}
}

完整代码如下:

js 复制代码
<template>
	<pre class="line-numbers"><code :class="`language-${type}`" v-text="code" /></pre>
</template>

<script setup lang="ts">
import { onMounted } from "vue"
import Prism from "prismjs"
import "prismjs/themes/prism-tomorrow.min.css"
import "prismjs/components/prism-json"

const props = withDefaults(defineProps<{
    type?: string
    code: string
}>(), {
    type: "json"
})

watch(() => props.code, () => {
    nextTick(() => {
        Prism.highlightAll()
    })
})
onMounted(() => {
    nextTick(() => {
        Prism.highlightAll()
    })
})
</script>
<style lang="scss">
pre {
	span {
	    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
	}
	code {
	    font-size: 16px !important;
	}
}
</style>

完结,撒花✿✿ヽ(°▽°)ノ✿

相关推荐
Mapmost4 分钟前
Mapmost SDK for UE5 内核升级,三维场景渲染效果飙升!
前端
Mapmost7 分钟前
重磅升级丨Mapmost全面兼容3DTiles 1.1,3DGS量测精度跃升至亚米级!
前端·vue.js·three.js
wycode13 分钟前
Promise(一)极简版demo
前端·javascript
浮幻云月14 分钟前
一个自开自用的Ai提效VsCode插件
前端·javascript
DevSecOps选型指南15 分钟前
SBOM风险预警 | NPM前端框架 javaxscript 遭受投毒窃取浏览器cookie
前端·人工智能·前端框架·npm·软件供应链安全厂商·软件供应链安全工具
__lll_23 分钟前
Docker 从入门到实战:容器、镜像与 Compose 全攻略
前端·docker
木春37 分钟前
react组件化思维:高复用性 UI 设计之道
前端·react.js
切克呦1 小时前
通过 Cursor CLI 使用 GPT-5 的教程
前端·后端·程序员
gitboyzcf1 小时前
Git 常用命令
前端·git·后端