感谢Codex。把我从代码地狱里解放出来了。
原先的个人作品集页面+博客采用的是NotionNext的方案,部署好后它可以自动抓取notion上的内容并渲染成网页。我很早就习惯了用Notion写东西,所以用这个方案比较自然,不太需要担心代码的事儿。

但26年经历了几次notion api的突然改动,有过好几次打开主页后发现404了的情况。虽然官方基本在出事儿当天就更新了,但每次都要更新框架重新部署还是有点费劲。更别说我自己改了一个theme,所以每次fork都要把改动的代码再改一遍…
这俩月还碰到一个新问题。我自己的theme会失效并变成一个默认theme,过几分钟再刷新又会恢复正常。这个问题几乎每次访问博客都会触发,我怀疑它也带来了额外的服务端消耗。实在懒得等notionnext解决问题了,于是趁着 Codex 爆火,决定干脆把整套方案换掉。
现在这版网站使用 Astro,采用构建时静态生成:每次部署时,仓库里的 Markdown 会被生成对应的博客页面。写 Markdown 也很方便,唯一的缺点是在其他设备上写博客不如 Notion 顺手。图片和文件则放在自己的 Cloudflare R2 中。 网站层级比较简单,样式使用 Tailwind 的 utility class,并尽量直接写在各个 .astro 文件中,方便以后自己维护和修改。
每次本地写完新内容同步上github就行,vercel会自动构建一版新的。