From f2333f74cbd959f32d67a087796543d9855fc5de Mon Sep 17 00:00:00 2001 From: Miao_Spring <539943419@qq.com> Date: Thu, 29 Aug 2024 20:26:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=EF=BC=8C=E5=9B=A0=E6=9C=89bug=E6=95=85=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=BB=A3=E7=A0=81=E7=BC=96=E8=BE=91=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 +- package.json | 1 - pnpm-lock.yaml | 27 ------------- public/icon.ico | Bin 0 -> 1042 bytes src/views/miaoCodeMirror.vue | 73 +++++++++++++++++++++-------------- vite.config.ts | 11 +++--- 6 files changed, 53 insertions(+), 63 deletions(-) create mode 100644 public/icon.ico diff --git a/index.html b/index.html index 6687935..cdd0520 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - MDW + MiaoDirectory
diff --git a/package.json b/package.json index 526581f..e2020a5 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "@codemirror/lang-vue": "^0.1.3", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lang-yaml": "^6.1.1", - "@uiw/codemirror-theme-vscode": "^4.23.0", "@vicons/ionicons5": "^0.12.0", "axios": "^1.7.3", "codemirror": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9deccf..dfdad0b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,9 +41,6 @@ importers: '@codemirror/lang-yaml': specifier: ^6.1.1 version: 6.1.1(@codemirror/view@6.33.0) - '@uiw/codemirror-theme-vscode': - specifier: ^4.23.0 - version: 4.23.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0) '@vicons/ionicons5': specifier: ^0.12.0 version: 0.12.0 @@ -496,16 +493,6 @@ packages: resolution: {integrity: sha512-TRdIPqdsvKmPla44kVy4jv5Nt5vjMfVjbIEke1CRULIrwKNRC4lIiZvNYDJvbUMNCFPNIUcOKhXTyMJrX18IMA==} deprecated: This is a stub types definition. pdfjs-dist provides its own type definitions, so you do not need this installed. - '@uiw/codemirror-theme-vscode@4.23.0': - resolution: {integrity: sha512-zl1FD7U1b58tqlF216jYv2okvVkTe+FP1ztqO/DF129bcH99QjszkakshyfxQEvvF4ys3zyzqZ7vU3VYBir8tg==} - - '@uiw/codemirror-themes@4.23.0': - resolution: {integrity: sha512-9fiji9xooZyBQozR1i6iTr56YP7j/Dr/VgsNWbqf5Szv+g+4WM1iZuiDGwNXmFMWX8gbkDzp6ASE21VCPSofWw==} - peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - '@vicons/ionicons5@0.12.0': resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==} @@ -1596,20 +1583,6 @@ snapshots: - encoding - supports-color - '@uiw/codemirror-theme-vscode@4.23.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)': - dependencies: - '@uiw/codemirror-themes': 4.23.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@uiw/codemirror-themes@4.23.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)': - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@vicons/ionicons5@0.12.0': {} '@vitejs/plugin-vue@5.1.2(vite@5.4.0(@types/node@22.1.0)(sass@1.77.8))(vue@3.4.37(typescript@5.5.4))': diff --git a/public/icon.ico b/public/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3792ff0b52e7c33597ac285b1c7e84a50d43f27b GIT binary patch literal 1042 zcmV+t1nv6(0096203aX$0000W0Q>_002TlM0EtjeM-2)Z3IG5A4M|8uQUCw|AOHXW zAP5Ek0047(dh`GQ010qNS#tmY4#NNd4#NS*Z>VGd00W#!L_t(|oU~V6NK;`LKK+PV z5JeCXrE@=Sg+FcnR6-c&RVabrc8G|K;bc!O?#gZ<%=#R(?qbozCi|DctBJ3sv zv8anKyzolsqEf4i%4zk!y6MjLopzRIFMKfeefys0dw-u%ltHT*mJ7;5oh=r@H);{+ znG)Xn=>*rl25TKYe<>5`S=bwMC~RBpkWy^)-mK<{^jP5Xd!@X03BdjsS*4tJ1xSva z4tKl$8@OqxcaK%-h{1)cMu7=y)haSKYokI@PT(%J%TmhwW_AFq^$72K19v(Mfjg8= z8^mUsiWuIF~l@*Kgw!}_Tcj(JZnw?BhGBH=QB zAoyO_N5z8{ksder%Fiw}aIRctd-TqfiOgLMIF_1Dw#Tc&K_{Mx#bOlH`K>GjzEwoJ ztCRPZ3G|d+bpYmeD6q~+2dx7AD3xesl-~v4-O;)9H@vz{n^VC${GRLudUE4X&9G9S z*JPYZ=h^g7HEw!hBK@pgV(yc23%u}Lhj84}#~q=tz3RmNL*11SF<~3}`F&2c>k^zf zgR4B`Z>{L-CbnOj%r@zT49b$j*NhU~FELk%=s8+rY!E{1ThMvrI1r$TrRRzSPMJXf z%_`HkNf_|>w^U-PrI*qoX1!TvQ`lyml3k(_BUPKB68*$9bg=W+lw!E|2Z6*I5?Ie9 zz+5(y02)limjnXq6sgTZcD9&KKw?G+Ay~#HG@HIrp$6<`6R<1nMM4t3r=S$Z(l&n8 z4~O=eO`xiuJ4z_S37G$EnX;Zl0^RK5s6%TMh&Ywlj| z_{Ihb$P@w(^F;tg`s3~R(@(cHP`xI{F~nsgUj(cYogC+Jz^v46f_lYGht#3wF$4pf zUS=L-Y}Q4^B2=&7fp_k3@Q~TyF4bQM3H}O5EL4VrhslRReg~>oI5h24{igl9fze$E z4|`U^wXXoizlR)3XH>5sB<7rof5#2!q#8H|;L`{W-SC2;AE75uy@EHsg3J<|hx&Hs z3LJoG3PP8~c8hM$`to!`>5S?XtHTN{6WEKj12Q>wDb^5+9DuVyo3PR1 -
+
- - +
保存
+
恢复到上次保存
- - - + + +
@@ -22,7 +16,6 @@ import useMiaoFetchApi from '@/hooks/useMiaoFetchApi' import { onMounted, ref } from 'vue' import { Codemirror } from 'vue-codemirror' import { NScrollbar } from 'naive-ui' -import { vscodeDark, vscodeLight } from '@uiw/codemirror-theme-vscode' const miaoFetchApi = useMiaoFetchApi() @@ -32,7 +25,7 @@ const currentFiles = defineModel('currentFiles', { const vFile = ref() const rootRef = ref() -const _key = ref(Math.random()) +// const _key = ref(Math.random()) const codeData = ref() // 第一次点击保存时自动备份data,暂时懒得做 const bakData = ref() @@ -54,18 +47,22 @@ const handleSave = async () => { false && miaoFetchApi.upload(file_bak, parentDir) } -const switchTheme = async () => { - if (!vFile.value) { - return - } - theme.value = theme.value === 'dark' ? 'light' : 'dark' - extensions.value = [ - ...(await getLangExtensions(vFile.value?.name)), - theme.value === 'dark' ? vscodeDark : vscodeLight - ] - _key.value = Math.random() +const handleReset = async () => { + codeData.value = bakData.value } +// const switchTheme = async () => { +// if (!vFile.value) { +// return +// } +// theme.value = theme.value === 'dark' ? 'light' : 'dark' +// extensions.value = [ +// ...(await getLangExtensions(vFile.value?.name)), +// // theme.value === 'dark' ? +// ] +// _key.value = Math.random() +// } + const getLangExtensions = async (fileName: string) => { const ext = fileName.split('.').pop()?.toLocaleLowerCase() switch (ext) { @@ -74,7 +71,7 @@ const getLangExtensions = async (fileName: string) => { case 'ts': case 'tsx': const { javascript } = await import('@codemirror/lang-javascript') - return [javascript()] + return [javascript({ jsx: ext.substring(2, 3) === 'x', typescript: ext.substring(0, 2) === 'js', })] break case 'css': case 'scss': @@ -127,7 +124,7 @@ onMounted(async () => { }) ).toString() bakData.value = codeData.value - extensions.value = [...(await getLangExtensions(fileName)), vscodeLight] + extensions.value = [...(await getLangExtensions(fileName))] rootRef.value?.addEventListener('keydown', (event) => { if (event.ctrlKey && event.key === 's') { @@ -142,13 +139,33 @@ onMounted(async () => { .codemirror-container { width: 100%; height: 100%; - &-top { - background-color: aqua; + + .codemirror-container-top { + display: flex; + border-bottom: 1px solid #000; + } + + .codemirror-container-btn { + height: 25px; + padding: 0 10px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + user-select: none; + background-color: none; + transition: background-color 0.25s; + + &:hover { + background-color: #e8e8e8; + } } } + .codemirror-container-dark { background-color: rgb(30, 30, 30); } + .codemirror-container-light { background-color: rgb(255, 255, 255); } diff --git a/vite.config.ts b/vite.config.ts index 74e736e..fe92d62 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -64,11 +64,12 @@ export default defineConfig({ output: { // 配置输出为单文件 // inlineDynamicImports: true, - manualChunks(id) { - if (id.includes('@codemirror')) { - return id.split('@')[1].replace('+', '-') - } - } + // manualChunks(id) { + // 加了会有bug + // if (id.includes('@codemirror')) { + // return id.split('@')[1].replace('+', '-') + // } + // } // entryFileNames: 'bundle.js', // format: 'iife', // 立即执行函数格式 // name: 'MyBundle'