导航栏从「首页 / 文档 / 归档 / 关于」扩展为信息架构更完整的 七项,并新增了「笔记」分区入口。
目标结构
1 | 首页 · 归档 · 分类 · 标签 · 文档 · 笔记 · 更多 ▾ |
「更多」在主题里本就支持 children 下拉,直接复用。
新增笔记入口
「笔记」指向 /notes/,新建 source/notes/index.md 并设置 mode: notes,左侧会渲染按分类归集的笔记树。
一个坑:Hexo 合并配置时的键顺序
主题自带一份默认菜单(含「更多」),站点 theme_config.menu 会与之合并。问题在于 Hexo 用的是 deepMerge(theme.config, theme_config),底层保留主题已有的键序,站点新增的键一律追加到末尾 —— 于是「文档 / 笔记」被排到了「更多」之后,顺序错乱。
解决方案:站点脚本重排,不改主题
没有去改主题 submodule(那样不可复现),而是新增站点脚本 scripts/menu-order.js:
1 | // before_generate 时把 theme.menu 的键重排为期望顺序, |
Hexo 会加载站点根目录的 scripts/,因此该脚本无需改动主题即可生效。
校验
- 导航顺序正确:首页 → 归档 → 分类 → 标签 → 文档 → 笔记 → 更多,下拉内为友链 / 关于。
/notes/渲染data-mode="notes",笔记侧栏按分类分组。- 八个导航目标(
/、/archives/、/categories/、/tags/、/docs/、/notes/、/links/、/about/)全部返回 200。 - 构建 73 files,0 error。
评论