EGGSYCHEN / BLOG

博客的技术实现

blog.eggsychen.asia 公开可读,但不常驻 CMS。为什么不用 WordPress / Ghost,见 四个站的选型

Astro 设成静态输出。文章是带标题、日期、摘要的 Markdown,Content Collection 用 glob 收集。首页按日期倒序,正文按短名预渲染成目录。构建结果拷到静态根,Caddy 按 Host blogfile_server

缺文章返回 404,不把未知路径折回首页。中文、深色、无评论、无统计、无登录墙。/write 禁止爬虫收录。

/write/ 先过 HTTP Basic Auth,通过才反代到只听回环的小服务。没有口令是 401。

表单收标题、日期、摘要、正文和可选英文短名。短名只允许小写字母、数字、连字符;空着按时间生成。写入后加锁,跑一次站点构建,用新目录替换线上文件。超时约三分钟;失败停在表单上,不留半套产物。

构建会短暂拉起 Node,所以写作进程的内存上限给到 512MB,避免子进程被杀掉。平时它几乎空闲。读者仍然只碰到磁盘上的 HTML。发布成功后跳到新文章;已有文章可以再打开覆盖同一份 Markdown。

没有人点发布时,博客文件自己不会变。门户至少还有一份定时 JSON;博客比它更静。