html pre标签增加行号,vue使用highlight.js 添加行号

本文介绍了在Vue项目中如何利用highlight.js库为代码块添加高亮显示并显示行号。首先引入highlight.js和样式文件,然后创建自定义指令`v-highlight`,遍历找到所有`pre code`元素并应用高亮处理。通过highlight.js生成的高亮HTML,结合行号生成最终的代码展示HTML,并展示了两种不同的样式实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图

6ee5d9005d7f

1587719278(1).jpg

main.js

import hljs from "highlight.js";

import "highlight.js/styles/atom-one-dark.css"; // 样式文件

Vue.directive("highlight", function(el) {

console.log("自定义指令", el);

let blocks = el.querySelectorAll("pre code");

blocks.forEach(block => {

console.log(block.innerHTML, "block是", block);

try {

let str = block.innerHTML;

let lang = "js";

// 得到经过highlight.js之后的html代码

const preCode = hljs.highlight(lang, str, true).value;

// 以换行进行分割

// const lines = preCode.split(/\n/).slice(0, -1);

const linesLength = preCode.split("
").length;

// 生成行号 aria-hidden 对浏览器语义化隐藏

let linesNum = '';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值