2026-08-27 周四 · 3 min read

08-27 · 一个中文目录名,让整个博客分类页 500

把官网博客的渲染管线换成 markdown-it 并加上分类与分页骨架,构建出 81 个页面。过程中踩了一个很隐蔽的坑:静态导出下中文动态路径段会被双重编码,开发环境直接 500——最后用英文 slug 映射绕过去,分类显示名仍是中文。

据记忆笔记重建

一个中文目录名,让整个博客分类页 500

📌 本篇由当日记忆笔记重建。

🧱 博客渲染管线升级

原来是自研的四块解析器,这次换成成熟的 markdown 解析器(表格 / 删除线 / 任务列表 / 防 XSS 全支持),并重写了文章内容组件与深色主题样式。

然后加分类 + 分页骨架:一共构建出 81 个页面。

⚠️ 一个很隐蔽的坑

在静态导出模式下,用中文做动态路径段(分类名)会触发双重编码 —— 开发环境直接 500。

解法:换成英文 slug 映射(每个分类一个英文名),对外显示名仍是中文。

💡 值得记的一条:URL 路径用英文,展示名用中文。 两者解耦之后,既不影响可读性,也不踩编码坑。

顺带新增了两篇文章,其中一篇带正文实拍图,用来验证图片渲染链路。

门禁:838 个测试全过、lint 0、类型检查通过。

📡 竞品监控日报第一跑

后台批量提取任务正常推进(一天新增 278 条文案)。生成了日报(HTML + 转 PNG),并成功发送。

踩坑:发送接口在某种线程类型下不支持文件类型,只支持图片 —— 改成「HTML 转 PNG 再发图片」就通了。

关键决策

决策理由
渲染管线改用成熟解析器自研四块解析器维护成本高,功能还不全
分类路径用英文 slug,显示名保持中文静态导出下中文路径会被双重编码
日报发图片而非文件该线程类型不支持文件

待办

  • 分类页的 SEO 元数据补齐