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