统计图

This commit is contained in:
2026-06-19 09:28:23 +08:00 Unverified
parent 3adca3d226
commit 2b248921c7
6 changed files with 389 additions and 8 deletions
+9
View File
@@ -2,16 +2,25 @@
import BaseLayout from '@/layouts/BaseLayout.astro';
import Pagination from '@/components/Pagination.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
import StatsChart from '@/components/StatsChart.astro';
import { getAllPosts } from '@/lib/posts';
import { getPageSlice } from '@/lib/pagination';
const posts = await getAllPosts();
const pageData = getPageSlice(posts, 1);
const archiveStats = [...posts.reduce((months, post) => {
const key = `${post.date.getFullYear()}-${String(post.date.getMonth() + 1).padStart(2, '0')}`;
months.set(key, (months.get(key) ?? 0) + 1);
return months;
}, new Map<string, number>())]
.sort(([a], [b]) => a.localeCompare(b))
.map(([label, value]) => ({ label, value }));
---
<BaseLayout title="归档">
<section class="content-wrap narrow">
<PageHeaderCard title="归档" subtitle={`共 ${posts.length} 篇文章`} />
<StatsChart title="归档发布趋势" subtitle="按月份统计文章发布数量" type="line" items={archiveStats} />
<div class="archive-list">
{pageData.items.map((post) => (
<a href={post.href}>