From 9f5932622c1978820ff96d0346110814b83be966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E6=A0=91?= Date: Thu, 22 Jan 2026 01:01:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E6=A0=87):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0SVG=E5=9B=BE=E6=A0=87=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在astro配置中添加iconDir指定本地图标目录 - 移除@iconify-json/simple-icons生产依赖,改为开发依赖 - 添加多个本地SVG图标文件(creative-commons, qq, telegram等) - 更新配置文件使用本地图标替代Font Awesome图标 - 在Profile组件中添加文章数和字数统计功能 --- astro.config.mjs | 1 + package.json | 2 +- pnpm-lock.yaml | 8 ++++---- public/icons/bilibili.svg | 1 + public/icons/creative-commons.svg | 1 + public/icons/folo.svg | 1 + public/icons/github.svg | 1 + public/icons/qq.svg | 1 + public/icons/telegram.svg | 1 + src/components/misc/License.astro | 2 +- src/components/widget/Profile.astro | 31 +++++++++++++++++++++++++++++ src/config.ts | 18 ++++++++--------- 12 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 public/icons/bilibili.svg create mode 100644 public/icons/creative-commons.svg create mode 100644 public/icons/folo.svg create mode 100644 public/icons/github.svg create mode 100644 public/icons/qq.svg create mode 100644 public/icons/telegram.svg diff --git a/astro.config.mjs b/astro.config.mjs index 454d0ff32..3a9da3a2d 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -68,6 +68,7 @@ export default defineConfig({ "material-symbols-light": ["*"], "material-symbols": ["*"], }, + iconDir: "public/icons", // Add this line to specify the directory for local SVG icons }), svelte(), sitemap(), diff --git a/package.json b/package.json index b64561ab7..909c2b9c3 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "@iconify-json/fa6-regular": "^1.2.3", "@iconify-json/fa6-solid": "^1.2.3", "@iconify-json/material-symbols": "^1.2.20", - "@iconify-json/simple-icons": "^1.2.42", "@iconify/svelte": "^4.2.0", "@swup/astro": "^1.6.0", "@tailwindcss/typography": "^0.5.16", @@ -71,6 +70,7 @@ "@astrojs/ts-plugin": "^1.10.4", "@biomejs/biome": "1.9.4", "@iconify-json/material-symbols-light": "^1.2.49", + "@iconify-json/simple-icons": "^1.2.42", "@rollup/plugin-yaml": "^4.1.2", "@types/markdown-it": "^14.1.2", "@types/mdast": "^4.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f0e2f8c7..80a385121 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,9 +61,6 @@ importers: '@iconify-json/material-symbols': specifier: ^1.2.20 version: 1.2.20 - '@iconify-json/simple-icons': - specifier: ^1.2.42 - version: 1.2.42 '@iconify/svelte': specifier: ^4.2.0 version: 4.2.0(svelte@5.28.2) @@ -173,6 +170,9 @@ importers: '@iconify-json/material-symbols-light': specifier: ^1.2.49 version: 1.2.49 + '@iconify-json/simple-icons': + specifier: ^1.2.42 + version: 1.2.42 '@rollup/plugin-yaml': specifier: ^4.1.2 version: 4.1.2(rollup@2.79.2) @@ -8984,7 +8984,7 @@ snapshots: lightningcss@1.29.3: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.2 optionalDependencies: lightningcss-darwin-arm64: 1.29.3 lightningcss-darwin-x64: 1.29.3 diff --git a/public/icons/bilibili.svg b/public/icons/bilibili.svg new file mode 100644 index 000000000..ea991974e --- /dev/null +++ b/public/icons/bilibili.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/creative-commons.svg b/public/icons/creative-commons.svg new file mode 100644 index 000000000..941beec20 --- /dev/null +++ b/public/icons/creative-commons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/folo.svg b/public/icons/folo.svg new file mode 100644 index 000000000..22692dbf2 --- /dev/null +++ b/public/icons/folo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/github.svg b/public/icons/github.svg new file mode 100644 index 000000000..d96926e2c --- /dev/null +++ b/public/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/qq.svg b/public/icons/qq.svg new file mode 100644 index 000000000..f501ab68d --- /dev/null +++ b/public/icons/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/telegram.svg b/public/icons/telegram.svg new file mode 100644 index 000000000..873cc4e90 --- /dev/null +++ b/public/icons/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/misc/License.astro b/src/components/misc/License.astro index 6f826fa8e..09c30f4b0 100644 --- a/src/components/misc/License.astro +++ b/src/components/misc/License.astro @@ -54,7 +54,7 @@ const postUrl = decodeURIComponent(Astro.url.toString()); {licenseConf.name} - + diff --git a/src/components/widget/Profile.astro b/src/components/widget/Profile.astro index 9046397b4..212c12974 100644 --- a/src/components/widget/Profile.astro +++ b/src/components/widget/Profile.astro @@ -1,8 +1,19 @@ --- import { Icon } from "astro-icon/components"; import { profileConfig, siteConfig, umamiConfig } from "../../config"; +import { getSortedPosts } from "@utils/content-utils"; const config = profileConfig; +const posts = await getSortedPosts(); +const totalPosts = posts.length; +let totalWords = 0; +for (const post of posts) { + const { remarkPluginFrontmatter } = await post.render(); + if (remarkPluginFrontmatter && remarkPluginFrontmatter.words) { + totalWords += remarkPluginFrontmatter.words; + } +} + ---
@@ -25,6 +36,26 @@ const config = profileConfig; }
+ +
+
+
+ + 文章数 +
+
{totalPosts}
+
+
+
+ + 总字数 +
+
+ {(totalWords / 10000).toFixed(1)}w +
+
+
+
diff --git a/src/config.ts b/src/config.ts index 2b25928c8..f0a8885a4 100644 --- a/src/config.ts +++ b/src/config.ts @@ -101,28 +101,28 @@ export const profileConfig: ProfileConfig = { links: [ { name: "QQ", - icon: "fa6-brands:qq", + icon: "qq", // Local icon url: "https://qm.qq.com/q/FWqOHlwL2m", }, { name: "Telegram", - icon: "fa6-brands:telegram", + icon: "telegram", // Local icon url: "https://t.me/+_07DERp7k1ljYTc1", }, { name: "Bilibli", - icon: "fa6-brands:bilibili", + icon: "bilibili", // Local icon url: "https://space.bilibili.com/325903362", }, { - name: "Folo", - icon: "fa6-brands:folo", - url: "https://app.folo.is/share/feeds/236818461447222272", + name: "GitHub", + icon: "github", // Local icon + url: "https://github.com/afoim", }, { - name: "GitHub", - icon: "fa6-brands:github", - url: "https://github.com/afoim", + name: "Folo", + icon: "folo", // Local icon + url: "https://app.folo.is/share/feeds/236818461447222272", }, ], };