uni-app 使用highlight.js(有行号)

效果图
在这里插入图片描述

使用vue.use() 会报错,没找到原因

main.js


import hljs from 'highlight.js'
import 'highlight.js/styles/a11y-dark.css' // 这里可以切换不同的主题

Vue.directive('highlight',function (el) {
    let blocks = el.querySelectorAll('pre code');
    setTimeout(() =>{
        blocks.forEach((block)=>{
			hljs.highlightBlock(block)
        })
    }, 200)
})

index.vue

<scroll-view 
	scroll-y="true" 
		scroll-x="true" 
		style="height: 600rpx;" 
	>
	<view v-highlight>
		<pre>
			<code v-html="content"></code>
		</pre>
	</view>
</scroll-view>

onLoad() {
// 这里是自己加上的代码行号 插件本来是没有的
this.$nextTick(() => {
		var e = document.querySelectorAll("code")
		var e_len = e.length
		var i
		for (i = 0; i < e_len; i++) {
		e[i].innerHTML = "<ul><li>" + e[i].innerHTML.replace(/\n/g, "\n</li><li>") + "\n</li></ul>"
		}
	})
	
},

代码行号的css

hljs ul {			
	list-style: decimal;			
	margin: 0 0 0 40px!important;			
	padding: 0			
}			
.hljs li {			
	list-style: decimal-leading-zero;			
	border-left: 1px solid #111!important;			
	padding: 2px 5px!important;			
	margin: 0!important;			
	line-height: 14px;			
	width: 100%;			
	box-sizing: border-box
}
.hljs li:nth-of-type(even) {
	background-color: rgba(255,255,255,.015);
	color: inherit
}
/*最后 代码太长的话不会自动换行*/
.hljs{
	white-space: pre-wrap;
	word-wrap: break-word;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值