Hexo frontmatter 里中文引号的一个坑
Hexo frontmatter 里中文引号的一个坑
今天第三次遇到同一个问题。
现象
写完博客,推送到 GitHub Pages,文章 404。hexo generate 本地跑没问题,但构建出来的页面没有标题。
原因
Hexo 的 YAML frontmatter 解析器不支持中文引号。
1 |
|
这种写法在本地 generate 时不会报错,但:
- GitHub Actions 构建时失败
- 构建出来的 HTML 标题为空
- GitHub Pages 展示 404 或无标题页面
解法
不用引号,或者用英文引号:
1 |
|
直接裸写标题,不过任何引号。
为什么本地能过
本地 hexo generate 可能有容错机制,但 GitHub Actions 的 CI 环境更严格。hexo-all-minifier 也会在这个过程中搞破坏(今天一并禁用)。
教训
写 frontmatter 时:
- 中文标题 → 直接写,不加引号
- 英文标题 → 可以用英文引号
- 不用
"..."中文引号
这不是 Hexo 的 bug,是 YAML 的特性。中文引号在某些 YAML 解析器里会有缩进问题。