返回首页

2026年4月4日

这个博客用了什么技术栈,怎么部署的

记录一下这个博客当前使用的技术栈、内容管理方式,以及 GitHub 到 Cloudflare Pages 的自动部署流程。

  • Astro
  • Markdown
  • Cloudflare

这个博客现在走的是一条很轻量、但非常适合个人写作的路线:用 Astro 做静态站点,用 Markdown 写文章,用 GitHub 管理内容和代码,再交给 Cloudflare Pages 自动部署。

我想要的体验其实很明确:

  • 写文章的时候尽量简单,不想依赖复杂后台。
  • 内容和代码都能版本管理,方便长期维护。
  • 每次提交之后自动上线,不想手动上传文件。

所以最后定下来的技术栈是下面这一套。

1. 框架:Astro

博客本体是用 Astro 搭的。

我选择它的原因很简单:

  • 很适合内容型网站,生成的是静态页面,访问速度快。
  • 对 Markdown 支持很好,写博客非常顺手。
  • 默认就很轻,不会带来一堆不必要的前端运行时代码。

对我这种个人博客来说,Astro 的优势就是“够用,而且干净”。

2. 内容管理:Markdown

所有文章都直接放在项目里的 src/content/blog 目录中。

每一篇文章就是一个 Markdown 文件,文件头部用 frontmatter 保存文章信息,比如:

---
title: 文章标题
description: 文章摘要
cover: /covers/your-cover.jpg
pubDate: 2026-04-04
tags:
  - 技术
  - 随笔
---

这里写正文。

现在这套 frontmatter 主要用了这些字段:

  • title:文章标题
  • description:文章摘要
  • cover:封面图路径
  • pubDate:发布日期
  • tags:文章标签

这样做的好处是写作很自由,同时结构又足够清晰,后面继续扩展 RSS、标签页、归档页也很方便。

3. 仓库管理:GitHub

这个博客项目本身放在 GitHub 仓库里,文章也跟着一起保存。

这意味着:

  • 代码和内容都能统一管理
  • 每次修改都有提交记录
  • 可以随时回滚历史版本
  • 换电脑或者长期备份都很方便

对于个人博客来说,GitHub 本身就是一个很适合的“内容仓库”。

4. 部署平台:Cloudflare Pages

部署这一层我用了 Cloudflare Pages

原因也比较实际:

  • 免费额度对个人博客足够用
  • 接 GitHub 很方便
  • 每次 push 到主分支后会自动重新构建
  • 静态站点部署体验很好

我现在的部署流程是:

  1. 本地修改文章或页面
  2. 提交代码并 push 到 GitHub
  3. Cloudflare Pages 检测到仓库更新
  4. 自动执行 npm run build
  5. 构建完成后发布到线上

也就是说,现在写博客的流程已经变成了“写 Markdown -> git push -> 自动上线”。

5. 这个博客现在的结构

目前项目里几个关键目录大概是这样:

  • src/pages:页面文件
  • src/components:卡片等组件
  • src/content/blog:所有博客文章
  • public/covers:文章封面图

首页会自动读取文章内容,按时间顺序展示成卡片列表;文章页则根据 Markdown 自动生成。

6. 为什么我喜欢这套方案

这套方案最适合我的一点是,它不需要传统博客后台。

我不用登录管理系统去发文章,也不用维护数据库。文章就是 Markdown 文件,图片就是静态资源,GitHub 是内容来源,Cloudflare Pages 负责发布。

整体非常直接:

  • 写作简单
  • 维护成本低
  • 部署自动化
  • 速度快

对个人博客来说,这就是一种很舒服的状态。

7. 后面还能继续加什么

虽然现在已经能正常写和发,但后面还可以继续扩展,比如:

  • 标签页与归档页
  • RSS 订阅
  • 评论系统
  • 自定义域名和 SEO
  • Sitemap

等这些再逐步补上,这个博客就会越来越完整。