highlight.js 1.0 KB

1234567891011121314151617181920212223242526272829
  1. // src/utils/highlight.js 文件路径,纯属自定义
  2. // highlight.js 代码高亮指令
  3. import Hljs from 'highlight.js'
  4. import 'highlight.js/styles/vs.css' // 代码高亮风格,选择更多风格需导入 node_modules/hightlight.js/styles/ 目录下其它css文件
  5. const Highlight = {}
  6. // 自定义插件
  7. Highlight.install = function (Vue) {
  8. // 自定义指令 v-highlight
  9. Vue.directive('highlight', {
  10. // 被绑定元素插入父节点时调用
  11. inserted: function (el) {
  12. const blocks = el.querySelectorAll('pre code')
  13. for (let i = 0; i < blocks.length; i++) {
  14. Hljs.highlightBlock(blocks[i])
  15. }
  16. },
  17. // 指令所在组件的 VNode 及其子 VNode 全部更新后调用
  18. componentUpdated: function (el) {
  19. const blocks = el.querySelectorAll('pre code')
  20. for (let i = 0; i < blocks.length; i++) {
  21. Hljs.highlightBlock(blocks[i])
  22. }
  23. }
  24. })
  25. }
  26. export default Highlight