最近想再开一个纯静态的博客,试了一圈 Astro 主题之后选了 Fuwari。它是 saicaca 开发的开源博客模板,颜值在线、动画流畅,功能也齐全:亮暗模式、主题色调节、全站搜索、目录、RSS 都是现成的。这篇文章记录一下从零到上线的完整过程,照着做大概十分钟就能跑起来。
Fuwari 是什么
Fuwari 是一个基于 Astro 和 Tailwind CSS 的静态博客模板,主要特性:
- 流畅的动画和页面切换效果
- 亮色 / 暗色模式切换,主题色可在右上角调色盘实时预览
- 基于 Pagefind 的全站全文搜索
- 自动生成文章目录(TOC)、RSS 订阅
- Markdown 扩展语法(如 GitHub 风格提示块)
- 完全静态输出,随便扔到哪个托管平台都能跑
准备工作
只需要两样东西:
- Node.js 20 或更高版本:去官网下载 LTS 版本安装即可。
- pnpm 9 或更高版本:Fuwari 强制使用 pnpm 管理依赖,用 npm 或 yarn 安装会直接报错。没装过的话执行:
npm install -g pnpm
另外建议有一个 GitHub 账号,方便后面把代码存到仓库并接自动部署。
第一步:初始化项目
有两种方式,任选其一。
方式 A:脚手架命令(推荐)
pnpm create fuwari@latest
按提示输入项目名,询问「Install Dependencies」时选 Yes,「Initialize Git」按需选 Yes,完成后会自动生成项目目录并装好依赖。
方式 B:从 GitHub 模板生成仓库
打开 saicaca/fuwari 的 GitHub 仓库,点绿色的「Use this template - Generate a new repository」,在自己的账号下生成一个副本,然后克隆到本地:
git clone https://github.com/你的用户名/fuwari.git
cd fuwari
pnpm install
第二步:本地跑起来
在项目根目录执行:
pnpm dev
然后浏览器打开 http://localhost:4321 ,就能看到带示例文章的博客了。开发服务器支持热更新,改配置和文章保存后立即生效。
Windows 下如果安装依赖或启动时报 sharp 相关的错误,手动补装一下:
pnpm add sharp
第三步:修改站点配置
Fuwari 的所有个性化配置都集中在 src/config.ts 一个文件里,改这一处就够了。几个关键的配置对象:
| 配置项 | 作用 | 常用字段 |
|---|---|---|
siteConfig |
站点信息 | title 标题、subtitle 副标题、lang: 'zh_CN' 语言、themeColor.hue 主题色相(0-360)、banner 首页横幅图 |
profileConfig |
侧边栏个人卡片 | avatar 头像路径、name 昵称、bio 简介、links 社交链接 |
navBarConfig |
导航栏链接 | 内置 Home / Archive / About,也可以加自定义链接 |
licenseConfig |
文章版权声明 | 协议名称和链接,如 CC BY-NC-SA 4.0 |
几个小提示:
lang记得改成'zh_CN',否则日期等格式是英文的。- 社交链接的图标名来自 icones.js.org,如果用了主题没预置的图标集,需要
pnpm add @iconify-json/<图标集名>安装。 - 部署前务必打开根目录的
astro.config.mjs,把site改成你的最终域名,否则 RSS 和 sitemap 里的地址是错的。
第四步:写文章
一行命令创建新文章:
pnpm new-post my-first-post
会在 src/content/posts/ 下生成 my-first-post.md,头部是 frontmatter 元信息:
---
title: 我的第一篇文章
published: 2026-08-24
description: 这是文章摘要,会显示在列表页
image: ./cover.jpg
tags: [Astro, Fuwari]
category: 技术
draft: false
---
published是发布日期,列表按它排序;draft: true的文章不会出现在正式站点里。- 封面图两种放法:直接把图片和 md 放同目录用相对路径引用;或者放到
public/下用绝对路径。 - 正文就是标准 Markdown,代码块高亮开箱即用。
保存后切回浏览器就能看到新文章,确认没问题就可以部署了。
第五步:构建与部署
执行构建:
pnpm build
产物在 dist/ 目录——注意这一步会顺便用 Pagefind 生成搜索索引,所以本地想体验搜索功能的话要先 build 再 pnpm preview。
托管平台任选其一,全部免费额度就够用:
| 平台 | 方式 |
|---|---|
| Vercel / Netlify | 导入 GitHub 仓库,框架自动识别为 Astro,零配置 |
| Cloudflare Pages | 构建命令 pnpm build,输出目录 dist |
| GitHub Pages | 仓库设置里启用 Pages,用官方 Astro Action 构建 |
以 Vercel 为例:新建 Project - 选择你的 fuwari 仓库 - Import,其他什么都不用填,点 Deploy 就完事了。之后每次 git push,平台都会自动重新构建上线。
日常发文流程就固定成了三步:pnpm new-post 写内容 - commit - push。
常见问题
- 报错 only-allow pnpm:Fuwari 锁死了包管理器,老实用 pnpm。
- 本地搜索搜不到东西:搜索索引只在
pnpm build时生成,dev 模式下搜索是空的,属于正常现象。 - 想要评论系统:主题本身不带评论,社区常见做法是接入 Twikoo、Waline 或 giscus,网上有不少现成的组件代码可以直接抄。
- 如何同步上游更新:保留 fork 关系,添加 upstream 远程仓库后
git fetch upstream再 merge 官方更新即可。
到这里,一个高颜值的个人博客就算正式开张了。剩下的事情就是换上自己的头像和横幅图,然后把写作的习惯坚持下去。