为什么改用 Astro
原本的博客基于 Vue 3 + FastAPI,有完整的后台管理、评论系统、GitHub OAuth 登录。随着功能的添加,维护成本变高:服务器续费、数据库备份、依赖升级……于是决定改造成纯静态站。
核心改造点
- 内容源:从 MySQL 改为
src/content/posts/*.md,Obsidian 写完直接复制进来 - 评论:后端 API 改为 Giscus(GitHub Discussions)
- 搜索:后端 LIKE 查询改为 Pagefind 构建时索引
- 部署:Docker + Nginx 改为 Cloudflare Pages 自动构建
代码示例
import { getCollection } from 'astro:content';
const posts = await getCollection('posts', ({ data }) => !data.draft);
保留的设计
纯黑白渐变配色、浮动药丸导航、网格发光背景、暗色模式、Markdown 渲染样式全部保留,确保视觉一致性。
改造不是推翻重来,而是用更轻的方式延续同样的表达。
