From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1

---
 src/directive/PreCode.js |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/src/directive/PreCode.js b/src/directive/PreCode.js
new file mode 100644
index 0000000..7c88142
--- /dev/null
+++ b/src/directive/PreCode.js
@@ -0,0 +1,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,
+}

--
Gitblit v1.9.3