Hexo-theme-Hybrid¶
把个人主页和 Wiki 式笔记库放进同一个 Hexo 主题。
站点首页是你的个人主页(名片、自述、经历、开源项目、学术成果、最近更新), 笔记区则是另一套页面:左侧一棵目录树,展开即读。两套形态共用同一套设计系统。
git submodule add https://github.com/HUSTJJD/Hexo-theme-Hybrid.git themes/hybrid
Features¶
- 三种页面模式 ——
home全宽个人主页 /page常规页 /wiki带目录树,由 front-matter 的layout决定 - 首页区块数据驱动 —— 名片、工作经历、教育经历、开源项目、论文专利全部写在
source/_data/*.yml,改内容不用碰模板 - 目录树导航 —— 由
_posts的目录结构自动构建,可折叠、可过滤、自动展开到当前文章 - 原生暗色模式 —— CSS 变量实现,可跟随系统、可手动切换并记忆,无第三方依赖
- 文章内目录(TOC) —— 自动生成、滚动高亮,不依赖渲染器的锚点实现
- 响应式 —— 宽屏侧栏常驻并可收起,窄屏变抽屉
- 多语言 —— 内置 10 种语言文件,界面文案(含 aria 标签、JS 文案)全部走 i18n,缺键回退到
default.yml - 增强 Markdown —— Mermaid 图表、KaTeX 公式、提示块、任务列表、脚注、emoji、上下标、缩写
- B 站视频嵌入 —— 内置
{% bilibili %}标签,BV / av 号、分 P、弹幕、比例都可调 - 分类只在一处展开 ——
/categories/是唯一的「主题 -> 文章」地图,/notes/走时间线,首页只看精选
两种形态,一套设计令牌¶
| 个人主页 | 笔记区 | |
|---|---|---|
| 入口 | / |
/notes/、/categories/、文章页 |
| 侧边栏 | 无(全宽) | 目录树 |
| 内容来源 | source/_data/*.yml + source/index.md |
source/_posts/ |
| 导航 | 顶栏菜单 + 页内锚点 | 目录树 + 主题分区 |
站点结构建议¶
_config.yml theme: hybrid
_config.hybrid.yml 站点专属信息(图标、外链账号)
source/
├── index.md 首页自述(layout: home)
├── _data/ 首页各区块的数据源
│ ├── profile.yml 名片、要点、技能
│ ├── works.yml WORKS / EDUCATION
│ ├── projects.yml PROJECTS(开源项目)
│ ├── papers.yml PAPERS / PATENTS
│ └── home.yml 首页通用文案
└── _posts/ 笔记,目录结构即目录树
与 Node-Tree 的差异¶
目录树引擎来自 hexo-theme-node-tree, 在它之上做了这些定制:
- 去掉 PJAX —— 多页面模式下各页 DOM 结构不同,无刷新加载会串味,改为整页加载
- 暗色模式改为原生实现 —— 原主题用 DarkReader(CDN + 运行时注入),这里换成 CSS 变量,不再依赖外部脚本,也没有刷新闪烁
- 样式全部重写 —— 独立的设计令牌(tokens / base / home / wiki),不引任何 CSS 框架
- 新增 home、page、archive、category、tag 布局,并让侧边栏按模式开关
- JS 全部判空 —— 个人主页没有侧边栏和目录树,所有模块都做了空值防御
- TOC 不依赖渲染器锚点 —— 自建 slug 兜底,换 renderer 也不会失效
- 文案抽成 i18n —— 原主题硬编码在模板里的文案改为语言文件
Acknowledgements¶
Hybrid 的目录树引擎——树形结构构建、节点展开/折叠、节点过滤、文章内目录与图片灯箱—— 来自 hexo-theme-node-tree by Exisi,MIT 协议。
而 node-tree 本身又衍生自 hexo-theme-tree by wujun234,同样感谢。
主题图标与交互中用到的 Font Awesome 4.7,以及 Hexo 本身。
License¶
MIT © 2026 HUSTJJD
衍生自 hexo-theme-node-tree(MIT © 2024 Exisi),其原始许可声明保留在 LICENSE-node-tree。