diff --git a/src/components/BlogList.tsx b/src/components/BlogList.tsx
deleted file mode 100644
index 6189844..0000000
--- a/src/components/BlogList.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-import React from 'react';
-import { useTranslations, type Lang } from '@/i18n/utils';
-import { type BlogPost, type BlogListProps } from '@/types';
-
-/**
- * Reusable blog list component that displays blog posts in a grid layout
- * @param posts - Array of blog posts to display
- * @param lang - Current language for internationalization
- * @param baseUrl - Base URL for blog post links
- */
-export default function BlogList({ posts, lang, baseUrl = '/blog/posts/' }: BlogListProps) {
- const t = useTranslations(lang);
-
- // Adjust base URL for Chinese language
- const postBaseUrl = lang === 'zh' ? '/zh/blog/posts/' : baseUrl;
-
- // Get localized "Read More" text
- const readMoreText = lang === 'zh' ? '阅读更多' : 'Read More';
-
- return (
-
diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro
index a36bfc1..f9f589f 100644
--- a/src/pages/blog/index.astro
+++ b/src/pages/blog/index.astro
@@ -1,9 +1,11 @@
---
import BlogLayout from '../../layouts/BlogLayout.astro';
-import BlogList from '../../components/BlogList.tsx';
+import BlogList from '../../components/blog/BlogList.astro';
+import CategoryCard from '../../components/blog/CategoryCard.astro';
+import TagCard from '../../components/blog/TagCard.astro';
+import { type BlogPost } from '@/types';
import { type Lang } from '@/i18n/utils';
import { defaultLang } from '@/i18n/ui';
-import { type BlogPost } from '@/types';
// 使用Astro.currentLocale获取当前语言环境
const lang = Astro.currentLocale as Lang || defaultLang;
@@ -89,48 +91,18 @@ const tags = Array.from(allTags).map(tag => `# ${tag}`).sort();
diff --git a/src/pages/zh/blog/index.astro b/src/pages/zh/blog/index.astro
index f4a33a8..68a8dd7 100644
--- a/src/pages/zh/blog/index.astro
+++ b/src/pages/zh/blog/index.astro
@@ -1,9 +1,11 @@
---
import BlogLayout from '../../../layouts/BlogLayout.astro';
-import BlogList from '../../../components/BlogList.tsx';
+import BlogList from '../../../components/blog/BlogList.astro';
+import CategoryCard from '../../../components/blog/CategoryCard.astro';
+import TagCard from '../../../components/blog/TagCard.astro';
+import { type BlogPost } from '@/types';
import { type Lang } from '@/i18n/utils';
import { defaultLang } from '@/i18n/ui';
-import { type BlogPost } from '@/types';
// 使用Astro.currentLocale获取当前语言环境
const lang = Astro.currentLocale as Lang || defaultLang;
@@ -91,46 +93,17 @@ const tags = Array.from(allTags).map(tag => `# ${tag}`).sort();