从个人知识库到 Cloudflare Pages:我的技术博客发布流程

从个人知识库到 Cloudflare Pages:我的技术博客发布流程

我一直用 Markdown 记技术笔记,知识库用 Git 管理。内容多了之后,希望一部分文章能持续对外发布:既沉淀自己的方法,也方便分享和求职时展示。

最终方案很简单:知识库仍是唯一内容源,用 YAML 挑出要公开的文章,同步进 Hexo,本地检查后推到 GitHub,由 Cloudflare Pages 自动构建并部署到 www.albeltbo.com。日常发布只剩一条命令:

1
make hexo_publish

整体链路如下:

1
2
个人知识库 → publish.yml → 同步 Markdown/图片 → Hexo 构建检查
→ Git Push → GitHub → Cloudflare Pages → www.albeltbo.com

一、整体设计

知识库是私有仓库,里面既有准备公开的技术文章,也有学习笔记和临时记录。所以不能把整个仓库直接挂上网,而是用 publish.yml 维护公开列表:

1
2
3
4
5
6
7
8
9
10
articles:
- path: "021-AI Engineering/01 - AI Agent 正在杀死软件工程.md"
date: "2026-07-14"
description: "作为一个程序员,你有多久没有亲手写过代码了?"
index_img: ".assets/9219ef53e7868c31.webp"
tags:
- "AI Agent"
- "软件工程"
- "工程效率"
- "人机协作"

只有列表里的文章会进博客。项目结构大致是:

1
2
3
4
5
6
7
knowledge-base/
├── Makefile
├── publish.yml
├── articles/
├── assets/
├── scripts/
└── hexo/

二、使用 Hexo 生成静态网站

Hexo 负责把 Markdown 渲染成静态站:文章页、首页、分类/标签页,再套上主题,输出到 hexo/public/。这个目录不进 Git——Cloudflare Pages 会自己拉源码并构建,仓库里只保留 Markdown、图片、Hexo 配置,避免反复提交构建产物。

三、自动同步公开文章和资源

发布时脚本会读 publish.yml,把对应 Markdown 拷到 hexo/source/_posts,再按文章引用只同步实际用到的图片等资源,并清理已取消公开的旧文件。

好处有两点:知识库仍是唯一内容源,不用维护两套版本;私人内容和公开内容边界清楚,不会一次误操作把整个库推上网。同步还要幂等——内容没变时,重复执行发布命令不应产生无意义的 Git 变更。

四、本地构建和预览

正式发布前先本地构建,确认 Markdown 能解析、图片路径有效、插件正常。预览用:

1
make hexo_preview

它会先同步公开文章,再启动 Hexo Server,方便检查首页、排版、代码块、图片、目录和主题效果。

五、一键发布到 GitHub

正式发布:

1
make hexo_publish

内部依次同步 Markdown 与资源、清理旧内容、做 Hexo 本地构建检查,再暂存博客相关文件、Commit、Push。平时发布一篇文章就是:在知识库里正常写 Markdown → 把要公开的文章写入 YAML → 执行 make hexo_publish,同步、校验、提交和推送都自动完成。

六、Cloudflare Pages 自动构建

Git Push 之后,Cloudflare Pages 检测到新 Commit,拉取仓库、进入 Hexo 目录、安装依赖、执行 hexo build,把生成的 public/ 部署到全球网络。不用自己买服务器、配 HTTPS,也不用手动传静态文件——薅 Cloudflare 羊毛就好了。

七、域名购买和 Cloudflare DNS

域名 albeltbo.com 买自 Spaceship,买完后把 Nameserver 改成 Cloudflare 提供的。之后 DNS 都在 Cloudflare 管,Spaceship 只当注册商。

博客主域名是 https://www.albeltbo.com。Pages 绑定这个域名并自动处理 HTTPS;Hexo 配置里也写成:

1
url: https://www.albeltbo.com

这样 Sitemap、RSS、Canonical URL 和页面元数据都会用正式域名。

八、HTTPS 和域名重定向

规范入口统一为 https://www.albeltbo.comhttp://www 跳到 HTTPS,根域名 albeltbo.com 做 301 到 www,避免 www / 非 www 被搜索引擎重复收录。

Cloudflare 这边覆盖了 HTTPS、HTTP→HTTPS、根域名→WWW 的 301、CDN/边缘缓存,以及 Pages 部署本身。

九、最终效果

现在发布就是:写 Markdown → 更新 publish.yml → 运行make hexo_publish → Cloudflare Pages 自动上线。

对我来说,价值不只是「搭了一个博客」,而是把原来散在本地的知识、实践和个人思考,收成一份可以持续积累、长期维护、对外展示的技术资产。知识库沉淀,Git 留痕,Hexo 表达,Cloudflare 交付——我继续写就行。


从个人知识库到 Cloudflare Pages:我的技术博客发布流程
https://www.albeltbo.com/posts/a098a7da.html
作者
AlbeltBo
发布于
2026年7月14日
许可协议