我们在初始化我们的博客文件夹后会生成如下文件,这是hexo官方说明的。

1、在执行hexo init命令后

Hexo文件结构_github

_config.yml文件

网站的 配置 信息,您可以在此配置大部分的参数。

package.json文件

package.json用来查看Hexo的版本以及相关依赖包的版本。
Hexo会默认安装:

  • hexo:主程序
  • hexo-deployer-git:实现git部署
  • hexo-generator-archive:存档页面生成器
  • hexo-generator-category:分类页面生成器
  • hexo-generator-index:index生成器
  • hexo-generator-tag:标签页面生成器
  • hexo-renderer-ejs:支持EJS渲染
  • hexo-renderer-marked:Markdown引擎
  • hexo-renderer-stylus:支持stylus渲染,主题需要
  • hexo-server:支持本地预览,默认地址localhost:4000

新安装的依赖包,也会保存在node_module文件夹下。

package.json

{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "hexo": {
    "version": ""
  },
  "dependencies": {
    "hexo": "^3.8.0",
    "hexo-generator-archive": "^0.1.5",
    "hexo-generator-category": "^0.1.3",
    "hexo-generator-index": "^0.2.1",
    "hexo-generator-tag": "^0.2.0",
    "hexo-renderer-ejs": "^0.3.1",
    "hexo-renderer-stylus": "^0.3.3",
    "hexo-renderer-marked": "^0.3.2",
    "hexo-server": "^0.3.3"
  }
}

scaffolds文件夹

模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。

Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

source文件夹

source:资源文件夹。资源文件夹是存放用户资源的地方(放图片、Markdown文档、文章、草稿、各种页面等)。除_posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹隐藏的文件将会被忽略。MarkdownHTML 文件会被解析并放到public文件夹,而其他文件会被拷贝过去。

  • source/_posts :默认source文件夹下只有一个_post文件夹,存放文章的markdown源文件,_posts 目录下的md文件,会被编译成 html 文件,放到 public 文件夹下。每个页面有一个以该页面命名的文件夹,也存放在source文件夹下。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。
  • source/_discarded:删除的博客存放在这里。
  • source/categories: 分类文件夹,有index.md文件,由hexo new page categories生成。
  • source/tags: 由hexo new page tags生成的标签文件夹,内自动生成index.md

themes文件夹

主题文件夹。Hexo会根据主题来生成静态页面。

2、执行hexo generate命令后

public文件夹

public文件夹是hexo g编译生成静态文件后自动生成的。将source文件夹里的Markdown文档,转换成index.html。再结合主题进行渲染成我们最终看到的博客。
hexo clean会清除db.jsonpublic文件夹下的所有文件。

3、执行hexo deploy命令后

.deploy_git文件夹

.deploy_git:将public文件夹的内容提交到Github后生成,内容与public文件夹基本一致。

关系大致是:source -> public -> .deploy_git

执行hexo generate,根据source,更新public
执行hexo deploy,根据public,更新.deploy_git

了解了这三个文件夹的关系,也就了解为什么自定义域名需要添加的 CNAME文件要在 public 文件夹下创建了。

执行hexo clean
Hexo文件结构_生成器_02
执行hexo d后,生成了db.json文件和public文件。
Hexo文件结构_html_03执行hexo d后,生成.deploy_git文件夹,这个文件夹就是我们部署到github或者gitee上面的文件。
Hexo文件结构_github_04