0. 前言
在 vue-cli3
项目中,通过highlight.js
,实现页面中代码高亮。
请先了解highlight.js官网中的使用说明。
1. 安装
1
| npm install highlight.js --save
|
2. 封装成vue插件
官方文档—自定义插件
官方文档—自定义指令
新建highlight.js
文件,并添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
import Hljs from 'highlight.js'; import 'highlight.js/styles/tomorrow-night.css';
let Highlight = {};
Highlight.install = function (Vue) { Vue.directive('highlight', { inserted: function(el) { let blocks = el.querySelectorAll('pre code'); for (let i = 0; i < blocks.length; i++) { Hljs.highlightBlock(blocks[i]); } }, componentUpdated: function(el) { let blocks = el.querySelectorAll('pre code'); for (let i = 0; i < blocks.length; i++) { Hljs.highlightBlock(blocks[i]); } } }) };
export default Highlight;
|
3. 全局引入自定义插件
在src/main.js
中:
1 2 3
| import Highlight from './utils/highlight'; Vue.use(Highlight);
|
4. 使用
1 2 3
| <div id="codeView" v-highlight> <pre><code v-html="code"></code></pre> </div>
|
code
是代码的字符串形式,比如:
"0x0000000000400da0 <+0>:\tpush\t%rbx\n0x0000000000400da1 <+1>:\tcmp\t$0x1,%edi\n0x0000000000400da4 <+4>:\tjne\t0x400db6 <main+22>\n"
更换更多的代码高亮风格,需要切换highlight.js
中导入的css
文件。