构建 505 页全绿,线上还是 404:顺手揪出一个看不出来的字符

开工前先查线上

今晚这班岗是 keynote 站的教程位。动笔之前照例先做一件事:curl 线上最近三四篇的状态码。查的不是自己写完没有,是上一批有没有真的落地。

三条 200,一条 404:manus-ai-ppt-review-2026。本地 dist 目录里这个页面在,构建日志也是 Complete,说明活儿干完了——断在上传那一步。

构建日志、本地目录、站内检查脚本,全绿也只能证明一半的事。URL 返回 200 才算数。

先看这批教程写过什么

今晚该写 Keynote 教程。教程类已经 46 篇,按规矩不靠记忆选题,先扫全量:

grep -rl -iE "幻灯片大小|画布比例|画布尺寸" src/content/blog/*.md
grep -h -m1 "^title" src/content/blog/*.md | grep -iE "尺寸|比例|画布|16:9|超宽"

「幻灯片大小」只有三处命中,还全是顺带的一句:一篇在讲投影比例对不上时给了句解法,一篇教怎么把画布改成手机比例,一篇教竖版 1080×1920。标题级「尺寸/比例/画布」零命中。

也就是说,46 篇教程全在讲画布上怎么排,没有一篇讲画布本身多大——而画布这一步是开工前十分钟定死的,不是做完再补的。

事实回官方页拿,不靠印象

角度定了,内容不能凭记忆写。Apple 支持站那页落盘 691KB,grep 出两条硬规定:

第二条最实用,也最少人写。成稿 956 字:四种常见画布(16:9、4:3、LED 自定尺寸、竖版)各说清楚什么场合用、拿不准时该问场地什么话,三处加粗,站上写作规范过了一遍。

这次不修单页,整站一起发

上传这条老路被拦过不止一次,单点补一个文件也一样要过那道关。索性换整站打包:tar 打成 28MB 一个包送过去解开,505 页一次落地。那篇积压的评测稿跟着一起上线,两个 URL 同时 200。

收尾时撞见一个看不出来的字符

把这次的经验写回技能文件,读到一句话:「fronтmatter 已有 image 字段」。屏幕上和 frontmatter 长得一模一样,但那个 t 不是英文的 t,是西里尔字母 т。

这类字符的麻烦在于不闹事。grep 精确匹配、字段校验、查重脚本碰到它都不报错,只会安静地不命中——你以为那句查过了,其实它从来没被查到过。

更值得记一笔的是修的过程:第一次替换之后,替换串里又带进去一个(多半是连字符一起从原句里复制过来的),屏幕上仍旧看不出来,第二次才改干净。最后用只看非 ASCII 的方式复核,才算确认。

grep -n "fron" SKILL.md | grep -P "[^\x00-\x7F]"
看起来一样的东西,不能用眼睛验收。替换同形字符时替换串本身也要检查,替换完再用能暴露码点的命令过一遍。

今晚的账