← 返回个人网站搭建

Project Update

首页门户:封面页与最近更新聚合

2026-07-05 · 个人网站搭建 · Astro · Content Collections · CSS Scroll Snap · 信息架构

目标

首页不一定只承担“欢迎语”的功能。对于个人网站来说,它更适合成为一个门户:第一屏负责建立站点气质,第二屏负责把最近内容清楚地带出来。

这次首页被拆成两屏:

  • 第一屏是封面页,保留个人站点的入口感。
  • 第二屏是最近更新门户,用三列展示博客、学习内容和项目更新。
  • 学习与项目不展示分区名,而是直接展示具体帖子标题,点击进入详情页。

内容读取方式

首页使用已有的内容读取工具:

const blogPosts = (await getPublishedEntries('blog')).slice(0, 5);
const studyNotes = (await getPublishedEntries('study')).slice(0, 5);
const projectUpdates = (await getPublishedEntries('projects')).slice(0, 5);

这样做的好处是首页不需要手动维护列表。CMS 中新增文章后,只要重新构建,首页就会自动读取最新内容。

分区内容如何跳转

学习和项目更新都属于“分区内帖子”,所以链接需要包含分区 slug:

getSectionedEntryPath('projects', entry)

最终路径类似:

/projects/personal-website-build/homepage-portal-guide/

翻页式滚动

首页使用 scroll-snap 做轻量的卡片式翻页体验:

html {
  scroll-snap-type: y proximity;
}

.home-page {
  min-height: 100vh;
  scroll-snap-align: start;
}

proximitymandatory 更温和,用户滚动时有翻页感,但不会过度抢夺滚动控制权。

实践要点

首页门户的关键不是视觉复杂,而是信息优先级清楚:

  • 第一屏只说“这里是什么”。
  • 第二屏回答“现在有什么新内容”。
  • 列表项直接进入详情页,减少中间层。

这让首页从静态欢迎页变成真正能承接内容系统的入口。