1234567891011121314151617181920212223242526272829 |
- // src/utils/highlight.js 文件路径,纯属自定义
- // highlight.js 代码高亮指令
- import Hljs from 'highlight.js'
- import 'highlight.js/styles/vs.css' // 代码高亮风格,选择更多风格需导入 node_modules/hightlight.js/styles/ 目录下其它css文件
- const Highlight = {}
- // 自定义插件
- Highlight.install = function (Vue) {
- // 自定义指令 v-highlight
- Vue.directive('highlight', {
- // 被绑定元素插入父节点时调用
- inserted: function (el) {
- const blocks = el.querySelectorAll('pre code')
- for (let i = 0; i < blocks.length; i++) {
- Hljs.highlightBlock(blocks[i])
- }
- },
- // 指令所在组件的 VNode 及其子 VNode 全部更新后调用
- componentUpdated: function (el) {
- const blocks = el.querySelectorAll('pre code')
- for (let i = 0; i < blocks.length; i++) {
- Hljs.highlightBlock(blocks[i])
- }
- }
- })
- }
- export default Highlight
|