From a941e46a0db4551cb3ea773812d0b00cc3392276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Tue, 20 Jan 2026 16:45:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/index.html | 8 +- client/package.json | 5 + client/pnpm-lock.yaml | 44 +++ client/{src => }/public/bg/img.png | Bin client/public/icon/icon.jpg | Bin 0 -> 19875 bytes client/src/App.vue | 22 +- client/src/components/Header.vue | 19 +- client/src/components/Icon.vue | 36 ++- client/src/main.ts | 15 + client/src/pages/BlogDetail.vue | 450 ++++++++++++++++++----------- client/src/pages/Home.vue | 13 +- client/src/pages/WorkDetail.vue | 22 +- client/src/pages/Works.vue | 14 +- 13 files changed, 401 insertions(+), 247 deletions(-) rename client/{src => }/public/bg/img.png (100%) create mode 100644 client/public/icon/icon.jpg diff --git a/client/index.html b/client/index.html index 4eef473..cb81cc2 100644 --- a/client/index.html +++ b/client/index.html @@ -2,15 +2,9 @@ - + 艺术与代码 | 年糕崽崽的数字花园 - - - - - -
diff --git a/client/package.json b/client/package.json index 6e4fa6b..9a24999 100644 --- a/client/package.json +++ b/client/package.json @@ -9,10 +9,15 @@ "preview": "vite preview" }, "dependencies": { + "@fontsource/inter": "^5.0.0", + "@fontsource/jetbrains-mono": "^5.0.0", + "@fontsource/noto-sans-sc": "^5.0.0", + "@fontsource/playfair-display": "^5.0.0", "@types/markdown-it": "^14.1.2", "echarts": "^6.0.0", "highlight": "^0.2.4", "highlight.js": "^11.11.1", + "lucide-vue-next": "^0.446.0", "markdown-it": "^14.1.0", "md-editor-v3": "^6.3.1", "vue": "^3.5.13", diff --git a/client/pnpm-lock.yaml b/client/pnpm-lock.yaml index df52842..2f463ff 100644 --- a/client/pnpm-lock.yaml +++ b/client/pnpm-lock.yaml @@ -8,6 +8,18 @@ importers: .: dependencies: + '@fontsource/inter': + specifier: ^5.0.0 + version: 5.2.8 + '@fontsource/jetbrains-mono': + specifier: ^5.0.0 + version: 5.2.8 + '@fontsource/noto-sans-sc': + specifier: ^5.0.0 + version: 5.2.9 + '@fontsource/playfair-display': + specifier: ^5.0.0 + version: 5.2.8 '@types/markdown-it': specifier: ^14.1.2 version: 14.1.2 @@ -20,6 +32,9 @@ importers: highlight.js: specifier: ^11.11.1 version: 11.11.1 + lucide-vue-next: + specifier: ^0.446.0 + version: 0.446.0(vue@3.5.26(typescript@5.6.3)) markdown-it: specifier: ^14.1.0 version: 14.1.0 @@ -327,6 +342,18 @@ packages: cpu: [x64] os: [win32] + '@fontsource/inter@5.2.8': + resolution: {integrity: sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==} + + '@fontsource/jetbrains-mono@5.2.8': + resolution: {integrity: sha512-6w8/SG4kqvIMu7xd7wt6x3idn1Qux3p9N62s6G3rfldOUYHpWcc2FKrqf+Vo44jRvqWj2oAtTHrZXEP23oSKwQ==} + + '@fontsource/noto-sans-sc@5.2.9': + resolution: {integrity: sha512-bTUIWGBgJDpwi5qAr+x0/lcgv80IHTB9vl6s2f6EymZEa7qYV99yNRBZuKFT+SYDKVunZrjCEhWtpxqmbXWl5Q==} + + '@fontsource/playfair-display@5.2.8': + resolution: {integrity: sha512-fUEhib70SszNhQVsGbUMSsWJhr7Je0rdeuZdtGpDNu0GKF1xJM8QhpI/y0pckU25GcChXm9TLOmeZupkvvZo2g==} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -817,6 +844,11 @@ packages: resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} engines: {node: 20 || >=22} + lucide-vue-next@0.446.0: + resolution: {integrity: sha512-ddx9NRczKulV4a2GcbY9F5l/zuUW0ARB4mRc+kOzFur9XvvrVxVmAmhqVChZUlj9Wmraopn8ujDfhxB6FlVfIw==} + peerDependencies: + vue: '>=3.0.1' + lucide-vue-next@0.543.0: resolution: {integrity: sha512-Az5kpNm/koKAwSNIKjsZ4uHV2tVfmlQlcHwFBygQ8gc5/jFg7An9OrxgDy/aE5m+HLx7VfLYqDxLr8gWecZbQA==} peerDependencies: @@ -1474,6 +1506,14 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true + '@fontsource/inter@5.2.8': {} + + '@fontsource/jetbrains-mono@5.2.8': {} + + '@fontsource/noto-sans-sc@5.2.9': {} + + '@fontsource/playfair-display@5.2.8': {} + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -1981,6 +2021,10 @@ snapshots: lru-cache@11.2.4: {} + lucide-vue-next@0.446.0(vue@3.5.26(typescript@5.6.3)): + dependencies: + vue: 3.5.26(typescript@5.6.3) + lucide-vue-next@0.543.0(vue@3.5.26(typescript@5.6.3)): dependencies: vue: 3.5.26(typescript@5.6.3) diff --git a/client/src/public/bg/img.png b/client/public/bg/img.png similarity index 100% rename from client/src/public/bg/img.png rename to client/public/bg/img.png diff --git a/client/public/icon/icon.jpg b/client/public/icon/icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f33ab936b895f992c5d5a36b73fe586baea78832 GIT binary patch literal 19875 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 literal 0 HcmV?d00001 diff --git a/client/src/App.vue b/client/src/App.vue index 2941393..2e53d84 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -1,25 +1,28 @@