我的博客发布流程
我的博客发布流程
现在我的博客已经形成了一套比较顺手的发布流程。
我只需要负责写文章,剩下的整理、构建、提交、推送和部署,都交给自动化脚本完成。
写文章
文章统一放在:
/Users/xuehua/Documents/blog/content/posts/
每一篇文章都是一个 Markdown 文件,例如:
你好.md
文件名很重要。图片目录会按照 Markdown 文件名来生成,而不是按照文章第一行标题。
比如 你好.md 里的图片会放到:
/Users/xuehua/Documents/blog/static/images/你好/
图片会自动编号成:
1.jpg
2.jpg
3.jpg
整理文章
写文章时,我不需要手动写 Hugo 抬头。
发布脚本会自动补齐:
---
title: "文章标题"
date: 2026-07-05T19:58:00+0800
description: ""
draft: false
typora-root-url: ../../static
---
其中 typora-root-url 是为了让我在本地 Typora 里也能看到图片。
整理图片
图片有两种来源。
一种是本地图片,比如 Typora 自动保存到本机临时目录里的图片。
另一种是网上复制来的图片。
无论是哪一种,发布脚本都会把图片保存到博客自己的 static/images/文章文件名/ 目录里。
这样做的好处是:
- 本地预览能显示
- 线上博客能显示
- 不依赖外部图片链接
- 原网站图片失效后,我的博客图片也不会跟着失效
文章里最终使用这样的图片路径:

双击发布
写完文章后,我只需要双击:
/Users/xuehua/Documents/blog/发布博客.command
双击后会打开终端窗口,并实时显示 5 个步骤:
第 1/5 步:检查新增、修改、删除的文件
第 2/5 步:只整理新增或修改过的文章
第 3/5 步:运行 Hugo 构建检查
第 4/5 步:准备本次变更并提交
第 5/5 步:推送到 GitHub,等待 Cloudflare 自动部署
如果发布成功,会弹出成功提示。
如果发布失败,会弹出失败原因,并打开日志文件。
不全量处理
发布脚本不会每次重新整理所有文章。
它会通过 Git 检查哪些文件发生了变化,然后只整理新增或修改过的 Markdown 文章。
如果以后有很多文章,比如一千篇,它也不会把所有文章都重新处理一遍。
删除文章时,Git 会识别删除动作,发布脚本会把删除同步到 GitHub。
自动部署
本地发布脚本会把更新推送到 GitHub:
https://github.com/itpeiqi/Blog
Cloudflare Pages 会监听 GitHub 仓库。
只要 GitHub 有新的提交,Cloudflare Pages 就会自动构建并部署。
博客地址是:
https://blog-auj.pages.dev
这样,我的日常写作流程就变成了:
写文章 -> 双击发布 -> 等成功提示 -> 打开博客查看
这就是现在的完整博客发布系统。