dodola · projects

Astro Navfolio

961 words 3 min read #Astro#Starter#Digital Garden#Portfolio

Astro Navfolio 是一个为个人站点准备的开源 starter。它不是传统的单页简历,也不是只展示文章列表的博客模板,而是把个人介绍、常用入口、文章归档、项目文档和轻量状态组件组织到同一个静态站点里。

项目仓库地址:github.com/dodolalorc/astro-navfolio

为什么做这个项目

很多个人主页会在作品集、博客、简历、GitHub 链接和近期动态之间拆成多个入口。Navfolio 的目标是让这些内容以更低的维护成本放在一起:主页负责快速导航,博客负责持续写作,Projects 区域负责沉淀项目说明和技术文档。

这个项目强调的是内容优先和长期可维护。视觉上,它更接近一个安静的开发者笔记本,而不是营销型落地页;交互上,它尽量保持轻量,不让动效和组件抢走阅读注意力。

核心能力

  • 使用 Astro 构建静态站点,适合部署到 GitHub Pages、Vercel 或任意静态托管平台。
  • 用 Markdown / MDX 管理博客、About 页面和项目文档。
  • 首页与站点信息集中在 src/config/site.toml 中,便于替换成个人资料、导航入口和联系方式。
  • 文章页支持标题元信息、阅读时间、标签、目录和相关内容。
  • Projects 区域支持项目入口页和单独项目文档,适合记录仓库说明、设计决策和实现细节。
  • 使用 lucide-astro 提供统一图标系统,减少手写图标和样式漂移。
  • 内置 RSS、Sitemap 和 GitHub Pages 部署配置。

技术结构

Navfolio 的实现保持 Astro-first:

src/
  components/        页面组件、卡片、博客工具和首页 widget
  content/           blog、about、projects Markdown / MDX 内容
  config/site.toml   首页资料和导航配置
  data/site.ts       TOML 配置读取 helper
  layouts/           基础布局和文章布局
  pages/             Astro 路由
  styles/global.css  全局视觉变量与排版规则

这种结构的好处是清晰、直接,也方便 AI 协作:内容、布局和视觉约束都有明确边界,新增页面时不需要引入复杂的状态管理或客户端框架。

设计方向

Navfolio 的视觉语言围绕几个关键词展开:轻、安静、结构化、适合阅读。卡片使用接近 GitHub 的弱边框和低阴影,动效控制在很小的位移与透明度变化内,文章页把正文作为视觉中心。

Projects 页面也遵循同一原则。项目文档不会被塞进厚重的作品集卡片,而是以文章的方式呈现:先说明背景,再记录结构、能力和取舍。

适合用在什么地方

这个 starter 适合以下场景:

  • 想要一个轻量个人主页,同时保留博客写作能力。
  • 希望把开源项目、项目文档和个人介绍放在同一个入口。
  • 需要一个可长期维护的静态数字花园。
  • 想用 Astro、MDX 和内容集合搭建一个简单但有秩序的发布系统。

后续可以扩展什么

当前项目已经具备基本的个人发布系统骨架。后续可以继续扩展:

  • 为 Projects 条目增加 repo 元数据、截图和状态标签。
  • 为博客增加标签索引和按主题聚合的专题页。
  • 接入搜索,让文章和项目文档可以统一检索。
  • 为首页增加更真实的个人活动流或 GitHub 数据卡片。
  • 把视觉规范沉淀成更多 .agents/skills 文档,方便持续迭代。

Navfolio 的重点不是一次性做成复杂系统,而是提供一个足够清晰、足够轻的起点,让个人内容可以稳定生长。