zxl
10 小时以前 172933f098017bc4c4f57dcda0d490ea12bb13bb
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { copyTextToClipboard as Clipboard } from '@/utils/functions'
 
const copyFunc = (pre, text) => {
  let el = document.createElement('p')
  el.className = 'fz-btn'
  el.innerText = '复制'
  el.onclick = () => {
    Clipboard(text.replace(/(^\s*)|(\s*$)/g, ''), function() {
      el.innerText = '复制成功!'
      setTimeout(() => {
        el.innerText = '复制'
      }, 1000)
    })
  }
 
  pre.appendChild(el)
}
 
const preNmae = (pre, lang) => {
  let el = document.createElement('p')
  el.className = 'lang-name'
  el.innerText = lang
  pre.appendChild(el)
}
 
function updateNodes(el, binding, vnode) {
  let preNodes = el.querySelectorAll('pre')
  preNodes.forEach(elPre => {
    let elCode = elPre.querySelector('code')
    let className = elCode.className
    let language = className.split('-')[1]
 
    copyFunc(elPre, elCode.innerText)
 
    if (language != undefined) {
      preNmae(elPre, language)
    }
  })
}
 
/**
 * 代码格式化
 */
export default {
  bind: updateNodes,
  update: updateNodes,
}