在 Hexo 的使用过程中,核心功能往往需要通过“扩展”来增强。扩展主要分为两大类:主题(Themes)和插件(Plugins)。本文将重点讲解如何在站点配置文件中管理这些扩展,特别是如何在不修改主题源文件的情况下自定义主题配置。
核心配置项说明
theme
这个配置项用于指定当前站点所使用的主题名称。Hexo 会去 themes 目录下寻找对应名称的文件夹。例如,如果你将 theme 设置为 next,Hexo 会加载 themes/next 下的文件。值得注意的是,如果你将此值设置为 false,则会禁用主题功能,这通常用于仅生成 API 数据或特殊用途的场景。
theme_config
这是一个非常实用的配置项,它允许你将主题的配置直接写在站点的 _config.yml 文件中。通常情况下,主题的配置需要在 themes/主题名/_config.yml 中修改。但通过 theme_config,你可以将这些配置集中管理,避免直接修改主题目录下的文件。当你升级主题文件(通常意味着覆盖整个主题文件夹)时,写在站点配置中的 theme_config 不会丢失,从而保护你的个性化设置。
配置示例
以下是一个典型的扩展配置示例,展示了如何指定主题以及如何通过 theme_config 覆盖主题内部的设置:
1 | # Extensions |
概念辨析:站点配置 vs 主题配置
在 Hexo 中,_config.yml 文件和 theme_config 容易混淆,它们的作用范围有本质区别:
- 站点配置 (
_config.yml根层级):控制 Hexo 的核心行为,如网站的 URL、根目录、分页设置、默认分类、部署方式等。这些设置是全局的,不依赖于特定主题。 - 主题配置 (
theme_config或主题目录下的_config.yml):仅控制网站的外观和展示逻辑。例如菜单结构、侧边栏小工具、颜色方案、字体设置等。这些配置只对当前指定的主题生效。
简单来说,站点配置决定了“有什么内容”以及“怎么生成”,而主题配置决定了“长什么样”。
注意事项
- 配置优先级:
theme_config中的设置会覆盖主题目录下_config.yml中的同名设置。如果你在两个地方都定义了menu,站点配置文件中的menu将生效。 - 主题依赖:
theme_config的具体写法完全取决于你当前使用的主题。不同的主题(如 Next、Butterfly、Yilia)支持的配置项完全不同。你需要查阅对应主题的文档来编写theme_config。 - 禁用主题:除非你有特殊需求(如开发 API 接口),否则不要将
theme设置为false,否则生成的站点将没有样式和布局。