Obsidian + Hexo 修复记录 — 2026-05-03
问题
Hexo 博客首页所有文章标题显示 Untitled,图片也无法显示。
原因
- 标题丢失:Obsidian vault 通过软链接
source/_posts → obsidian/作为 Hexo 文章源,但 markdown 文件缺少 Hexo 必需的 YAML Frontmatter(title、date、categories) - 图片 404:图片分散在各子目录的
images/或assets/中,prependRoot: true将路径转为/assets/xxx.png,但source/下没有assets/目录,图片未被复制到public/
修复内容
1. 批量添加 Frontmatter(32 个 .md 文件)
1 |
|
2. 图片统一管理
- 126 张图片迁移到
obsidian/assets/(vault 根目录) - 所有 markdown 引用从
images/xxx.png改为assets/xxx.png - 创建软链接
source/assets → obsidian/assets,Hexo 自动复制图片到public/assets/
3. Obsidian 配置更新
| 文件 | 修改 |
|---|---|
.obsidian/app.json |
attachmentFolderPath → assets |
.obsidian/plugins/obsidian-custom-attachment-location/data.json |
attachmentFolderPath → assets |
4. 目录结构重整
靶机目录对齐 BUUCTF/WEB 格式,md 文件从嵌套子文件夹上提一级:
1 | 靶机/QQGroup/111/111.md → 靶机/QQGroup/111.md |
清理了所有空 images/ 和 assets/ 子目录。
5. 自动化(Skill + 模板)
- Claude Code Skill:
.claude/skills/add-frontmatter.md— 今后创建新 md 文件自动加 Frontmatter - Obsidian 模板:
templates/CTF-Writeup.md—Cmd+P→ 插入模板 → CTF-Writeup
最终状态
- Hexo 生成
hexo g:214 files generated - 首页标题:0 个 Untitled,全部正常
- 图片:126 张正确复制到
public/assets/,HTML 引用/assets/xxx.png正常解析