vue中使用Highlight.js实现格式化代码显示

1. 安装Highlight.js

npm install highlight.js

2. Highlight.js基础使用

html中使用:界面效果
在这里插入图片描述

<template>
  <div class="p-24">
    <h2>代码高亮示例</h2>
    <pre>
      <code class="language-js" v-html="highlightedCode"></code></pre>
  </div>
</template>
<script setup lang="ts">
import { watch, onMounted } from "vue";
import hljs from "highlight.js";
// 加载默认主题
import "highlight.js/styles/default.css";

const html = `
<!DOCTYPE html>
  <html lang="zh">
    <head>
      <meta charset="UTF-8" />
      <title>简单 HTML 文档</title>
    </head>
    <body>
      <!-- 简单 HTML 文档 -->
      <h1 id="welcome">欢迎来到我的网站</h1>
      <p class="title">这是一个简单的 HTML 页面。</p>
      <ul>
        <li>项目 1</li>
        <li>项目 2</li>
        <li>项目 3</li>
      </ul>

      <img src="example.jpg" alt="示例图片" />

      <footer>
        <p> 2024 我的网站</p>
      </footer>
    </body>
  </html>`;
const highlightedCode = hljs.highlight(html, { language: "html" }).value;

onMounted(() => {
  // 高光全部
  hljs.highlightAll();
});
</script>
<style scoped>
</style>

🔍查看Highlight.js支持的内置语言

3. 更改主题

在上述代码中添加以下的样式:

import "highlight.js/styles/dark.css";

在这里插入图片描述

import "highlight.js/styles/night-owl.css"

在这里插入图片描述

更多的内置主题可以参考如下的样式:
🔍Highlight.js 内置的主题样式

4. vue中使用Highlight.js

安装vue-plugin插件:

npm i @highlightjs/vue-plugin

本地使用组件:

<template>
  <div class="p-24">
    <hljsVuePlugin.component
      language="html"
      :code="html"
    ></hljsVuePlugin.component>
  </div>
</template>
<script setup lang="ts">
import { onMounted } from "vue";
import hljs from "highlight.js";
import "highlight.js/styles/night-owl.css"
import hljsVuePlugin from "@highlightjs/vue-plugin";

const html = `<!DOCTYPE html>
  <html lang="zh">
    <head>
      <meta charset="UTF-8" />
      <title>简单 HTML 文档</title>
    </head>
    <body>
      <!-- 简单 HTML 文档 -->
      <h1 id="welcome">欢迎来到我的网站</h1>
      <p class="title">这是一个简单的 HTML 页面。</p>
      <ul>
        <li>项目 1</li>
        <li>项目 2</li>
        <li>项目 3</li>
      </ul>
      <img src="example.jpg" alt="示例图片" />
      <footer>
        <p> 2024 我的网站</p>
      </footer>
    </body>
  </html>`;
</script>
<style scoped>
</style>

🔍 vue中json格式化显示(vue-json-viewer)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值