给博客做定时发布

344 字
2 分钟
给博客做定时发布

⏰ 需求#

想提前写好一堆文章,按日期一篇篇放出来,而不是写完立刻推。

静态博客没有这个功能——它只在构建那一刻决定有哪些页面,未来日期的文章会立刻显示,不会等到那天。

🧩 思路#

主题支持 draft: true,草稿在生产构建时被排除(本地预览仍可见)。

所以问题变成:怎么让 draft 在指定日期自动变成 false。

答案是定时任务。

🛠 实现#

两部分:

1. 脚本:扫描 src/content/posts/,找出 draft: true 且 published 日期已到(北京时间)的文章,改成 draft: false。

2. GitHub Actions:每天定时(比如北京时间 8 点和 20 点)跑一次脚本,如果有改动就自动 commit 并 push。

push 之后,Cloudflare 会自动触发构建,文章就上线了。

⚙️ 几个细节#

  • 时区:Actions 的 cron 用的是 UTC,北京时间要减 8 小时
  • 权限:workflow 要显式声明 permissions: contents: write,否则提交会被拒
  • 幂等:没有到期文章时不要产生空提交,加个 git diff --quiet 判断
  • 手动触发:加上 workflow_dispatch,想立刻发某篇时手动点一下就行

🪵 好处#

现在我一次写一批,设好日期,之后的三十天什么都不用管。

写作和发布解耦了——写的时候集中写,发的时候自动发。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

给博客做定时发布
https://shudong.cyou/posts/schedule-post/
作者
树洞
发布于
2026-10-26
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
树洞
shudong · 把想说的话,说给树洞听
公告
欢迎来到树洞 —— 一个安静说话的地方。
分类
标签
最新动态
站点统计
文章
27
分类
5
标签
28
总字数
9,570
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Workers
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录