0. 背景
使用prism.js
对editor.md
产生的代码片段进行高亮显示
1. 引入prism.js
1.1 下载
1.2 引入项目
2. 使用
2.1 配置prism
修改
babel.config.js
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
plugins: [
[
'prismjs',
{
languages: ['javascript', 'css', 'markup', 'sql'],
plugins: ['line-numbers', 'copy-to-clipboard'],
theme: 'okaidia',
css: true
}
]
]
}
2.2 添加行号和复制
created () {
this.$nextTick(() => {
// 添加行号
const preBlocks = document.querySelectorAll('pre')
preBlocks.forEach(preBlock => {
if (!preBlock.classList.contains('line-numbers')) {
preBlock.classList.add('line-numbers')
}
// 设置复制提示
preBlock.setAttribute('data-prismjs-copy', '复制')
preBlock.setAttribute('data-prismjs-copy-success', '复制成功')
preBlock.setAttribute('data-prismjs-copy-timeout', 1000)
this.$iceLog.log(preBlock.dataset)
})
// 渲染完成后,高亮代码
Prism.highlightAll()
})
}