| New file |
| | |
| | | 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, |
| | | } |