八月底写过一篇日更两周的感想,结尾立了个 flag:博客会继续写,但可能不会每天都是长文。今天回看那篇,正好交个后续,因为现在的实际情况是:我连"写"这个环节都外包了,博客现在是自动发的。
事情从九月中旬开始。有天加班到很晚,回家根本不想碰键盘,但日更的执念又在那儿挂着,于是盯着满屏的空白文档发呆的时候突然想通了一件事:我给自己的要求是"博客每天有更新",又不是"我的手指每天必须敲键盘"。这两件事之间明明隔着一条自动化能填的河。
现在的流水线长什么样
拆开说,现在博客的日常运转是三班倒:
每天早上十点,cron 任务醒来,从几个大分类里挑当天的题目。财经和数码硬件这类要过日子的内容,先走一遍联网核实,查不到可靠信源就换题,绝不硬编。十点半左右第一篇稿子落进 content/post/,跑一遍 Hugo 构建直接推到 nginx 的目录里,中间不需要我出现。
晚上九点半还有一班,负责第二篇。这样一天两篇的节奏就稳了,而且早上那篇大概率是前一天晚上就备好的,晚上那篇可以蹭当天的热点,比如 BLAST Slam VIII 打完的战报,上午写预览晚上写结果,人根本来不及反应,但流水线来得及。
至于我本人,现在的角色大概是个选题编辑兼校对:刷手机看到什么值得写的题材,记下来喂进选题池,然后定期翻翻自动发出来的东西,看到哪儿写崩了改哪儿。产出速度从我一个人手敲的两周三十多篇,到现在稳定的一周十几篇,关键是断更是真的没再发生过。九月有几个晚上我喝多了躺平,第二天早上一睁眼,博客已经自己更新完了,那种感觉像是家里养了只会下蛋的鸡。
踩过的坑,都是真金白银
不过自动化这三个月踩的坑,比过去两年手动写踩的都多,随便挑几个大的说说。
第一个坑是时区。服务器是 UTC,Hugo 默认不构建 date 晚于当前时刻的文章,而且不报错,静默跳过。我最开始按北京时间给文章标时间戳,结果文章明明写完了,页面上就是 404。排查了一晚上才发现是日期被 Hugo 判成了"未来"。现在的规矩是所有 date 一律写当前 UTC 时间减八小时之前,或者干脆写早上九点这种绝对安全的时间点。这个坑我后来在任何教程里都没见人提过,属于是用 404 换来的经验。
第二个坑是一致性。人写东西会记得自己昨天写过什么,机器不会,除非你逼它查。有段时间连着出了几篇文章,前面说手里是 RX 580,后面突然变成 GTX 1060 当主力卡;天梯分今天三千明天五千。后来加了一道工序:生成任何稿件之前,先全文检索一遍历史文章,把同主题的旧文翻出来对口径。用 grep 搜关键词,比记忆可靠,比我更可靠。
第三个坑最隐蔽:语气漂移。头几篇文章我读着还挺像自己,越往后越像营销号,满屏"值得一提的是"“综上所述”,看得我脚趾抠地。人是会因为连续输出而文风变形的,自动化系统也会。现在的解法是把文风规则写成一份 checklist,每篇发出来之前对照过一遍,超纲的词直接砍。相当于给我的赛博分身定期做口音矫正。
一点真心话
写到这里得说句公道话:这套系统再顺滑,也替代不了"想写点什么"的那个冲动。cron 能保证博客每天有更新,但保证不了每篇都有灵魂。回看这三个月,我自己最满意的那几篇,Gothic 重制的通宵、假期里的碎碎念、还有深夜被 Balatro 吸走那篇,全是人肉写的。自动发的那些是"合格",手写的那几篇才是"想发"。
所以现在的定位挺清楚:自动化管日常更新,让这个博客在我摆烂的时候也不断气;真有表达欲的时候,我还是自己上手。两者不冲突,一个管生计,一个管热爱。
最后报个数:从八月二十号开始日更到今天,第一百四十多篇,中间零断更。当年那个对着空白文档发呆的我,大概想不到后来发文章发得最勤的日子,恰恰是自己最懒的那段。
就这样。今晚那班 cron 九点半还要开工,我先把明天的选题记下了,跑路。