用 Astro 5 + Cloudflare 搭一个零运维的个人博客
这篇文章用来测试博客的各种 Markdown 渲染效果,同时记录这套技术栈的决策过程。
技术选型
| 层级 | 选型 | 理由 |
|---|---|---|
| 前端框架 | Astro | 内容站优先,MDX 一等公民,SSG 性能好 |
| 后端 API | Pages Functions | 随 Pages 项目一体部署,零额外配置 |
| 数据库 | Cloudflare D1 | SQLite 兼容,免费额度内够用 |
| 搜索 | Pagefind | 构建时索引,浏览器端即时搜索 |
代码块
// 用 ON CONFLICT 实现浏览量的幂等自增
await env.DB.prepare(
`INSERT INTO post_stats (post_slug, views, likes)
VALUES (?, 1, 0)
ON CONFLICT(post_slug) DO UPDATE SET views = views + 1`
).bind(slug).run();
# 本地开发
npm run dev
# 构建(含 Pagefind 索引)
npm run build
列表与引用
- 普通列表项
- 支持 加粗、斜体、
行内代码
引用块:保持好奇,持续输出。
分隔线
图片
(此处预留图片示例位,正式文章会插入截图)
小结
这套技术栈最大的好处是 零运维:写 Markdown、push、自动构建上线,数据库也不用自己管。非常适合个人博客这种低频但要求稳定的场景。