hexo 学习 0003:hexo 项目结构

在成功安装 Hexo 并执行初始化命令后,系统会在指定目录下生成一套特定的文件结构。对于初学者而言,理解这些文件和文件夹的作用,是后续进行内容创作、主题定制和站点配置的前提。Hexo 的项目结构设计遵循了“约定优于配置”的原则,清晰地划分了核心配置、源代码、生成逻辑和主题表现。本文将深入剖析初始化后生成的每一个核心目录与文件,助你快速掌握 Hexo 博客的“骨骼”与“血肉”。

一、初始化项目结构概览

在执行 hexo init <folder> 命令后,Hexo 会下载默认主题并生成基础文件。进入项目目录,你会看到如下结构:

1
2
3
4
5
6
7
8
.
├── _config.yml # 站点配置文件
├── package.json # 应用程序信息
├── scaffolds # 模版文件夹
├── source # 资源文件夹
| ├── _drafts # 草稿文件夹(默认忽略)
| └── _posts # 文章文件夹
└── themes # 主题文件夹

二、核心文件解析

1. _config.yml:站点的中枢神经

这是整个 Hexo 站点的配置中心。YAML(YAML Ain’t Markup Language)格式的配置文件决定了网站的行为逻辑。

  • 作用:你可以在此配置网站的标题、描述、作者、语言、时区、部署方式以及主题名称等绝大部分参数。
  • 注意:除了站点根目录下的 _config.yml,主题目录下通常也有一个同名文件,用于配置主题特定的选项。修改时请务必分清层级,避免配置错位。

2. package.json:应用的身份证

该文件记录了当前 Hexo 项目的元信息及依赖关系,是 Node.js 项目的标准配置文件。

  • 核心内容
    • name:项目名称。
    • version:项目版本号。
    • dependencies:项目依赖的插件列表。
  • 默认依赖说明
    • Hexo 核心hexo 及其生成器(如 hexo-generator-index)。
    • 渲染引擎:Hexo 默认安装了 hexo-renderer-ejs (模板)、hexo-renderer-stylus (样式) 和 hexo-renderer-marked (Markdown 解析)。如果你偏好其他技术栈(如 Pug, Sass, 或其他 Markdown 解析器),可以在此移除默认依赖并安装对应的渲染器。

3. scaffolds:文章的模具

当你使用 hexo new [layout] <title> 命令创建新文章时,Hexo 会根据此目录下的模版文件来生成草稿。

  • 工作机制:Hexo 会读取 scaffolds 目录下对应的文件(如 post.mddraft.mdpage.md),并将你在命令中输入的标题和日期填充进去。
  • 自定义:你可以修改这些模版文件,预设 Front-matter(文章头部的元数据),例如默认的分类、标签或特定的布局参数,从而提高写作效率。

三、核心目录解析

1. source:内容的源泉

这是存放用户资源的核心目录,最终会被 Hexo 处理并生成静态文件。

  • 处理规则
    • 解析:目录下的 Markdown (.md) 和 HTML (.html) 文件会被解析,经过主题渲染后生成静态网页。
    • 拷贝:图片、CSS、JavaScript 等其他静态文件会被直接拷贝到 public 目录。
    • 忽略规则:除 _posts 外,以 _ (下划线) 开头的文件/文件夹,以及隐藏文件,会被 Hexo 忽略,不会被处理。
  • 关键子目录
    • _posts:存放博客文章的专用文件夹。文章必须放在这里,才能被正确识别为博客内容并按时间线排列。
    • _drafts:存放草稿的文件夹。草稿默认不会被发布,只有在执行 hexo publish 命令或将草稿移至 _posts 后才会生效。

2. themes:网站的皮肤

Hexo 的主题系统实现了内容与表现的分离。该目录存放着控制网站外观的所有文件。

  • 工作机制:Hexo 会根据 _config.ymltheme 字段指定的主题名称,读取 themes 目录下的对应文件夹,利用其中的模板(Templates)、样式表(Stylesheets)和脚本(Scripts)将你的 Markdown 内容转化为最终的静态网页。
  • 灵活性:你可以随时下载或开发新的主题放入此目录,并通过修改配置文件中的 theme 字段来切换网站外观,而无需改动内容。

四、项目结构对照表

为了方便记忆与查阅,整理核心结构如下:

文件/目录 类型 描述 备注
_config.yml 文件 站点配置文件 控制网站全局行为
package.json 文件 应用程序信息 管理插件依赖与版本
scaffolds 目录 模版文件夹 新建文章时的默认结构
source 目录 资源文件夹 存放用户内容与静态资源
themes 目录 主题文件夹 存放外观模板,决定生成样式

五、总结与建议

理解 Hexo 的项目结构,是高效管理博客的第一步。

  • 内容创作:请将所有文章存放在 source/_posts 目录下,利用 scaffolds 定制你的文章模板。
  • 配置管理:站点级别的通用配置在根目录 _config.yml 中修改;主题特定的配置(如菜单、颜色、侧边栏)请在 themes/主题名/_config.yml 中修改。
  • 资源管理:除文章外的静态资源(如图片、PDF)建议在 source 目录下建立专门的文件夹(如 imagesfiles)进行存放,以保持结构清晰。

通过熟练掌握这些目录与文件的功能,你将能更从容地驾驭 Hexo,构建出结构严谨、维护方便的个人博客系统。