Hexo命令与目录结构

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
超快速度:Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。

支持 Markdown:Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。

一键部署:只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。

插件和可扩展性:强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成

Hexo 命令

指令 | Hexo

init

1
$ hexo init [folder]

新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

本命令相当于执行了以下几步:

  1. Git clone hexo-starterhexo-theme-landscape 主题到当前目录或指定目录。
  2. 使用 Yarn 1pnpmnpm 包管理器下载依赖(如有已安装多个,则列在前面的优先)。npm 默认随 Node.js 安装。

new

1
$ hexo new [layout] <title>

新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。

1
$ hexo new "post title with whitespace"
参数 描述
-p, --path 自定义新文章的路径
-r, --replace 如果存在同名文章,将其替换
-s, --slug 文章的 Slug,作为新文章的文件名和发布后的 URL

默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。对于独立页面来说,Hexo 会创建一个以标题为名字的目录,并在目录中放置一个 index.md 文件。你可以使用 --path 参数来覆盖上述行为、自行决定文件的目录:

1
hexo new page --path about/me "About me"

以上命令会创建一个 source/about/me.md 文件,同时 Front Matter 中的 title 为 "About me"

注意!title 是必须指定的!如果你这么做并不能达到你的目的:

1
hexo new page --path about/me

此时 Hexo 会创建 source/_posts/about/me.md,同时 me.md 的 Front Matter 中的 title 为 "page"。这是因为在上述命令中,hexo-cli 将 page 视为指定文章的标题、并采用默认的 layout

generate

1
$ hexo generate

生成静态文件。

选项 描述
-d, --deploy 文件生成后立即部署网站
-w, --watch 监视文件变动
-b, --bail 生成过程中如果发生任何未处理的异常则抛出异常
-f, --force 强制重新生成文件 Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。 使用该参数的效果接近 hexo clean && hexo generate
-c, --concurrency 最大同时生成文件的数量,默认无限制

该命令可以简写为

1
$ hexo g

publish

1
$ hexo publish [layout] <filename>

发表草稿。

server

1
$ hexo server

启动服务器。默认情况下,访问网址为: http://localhost:4000/

选项 描述
-p, --port 重设端口
-s, --static 只使用静态文件
-l, --log 启动日记记录,使用覆盖记录格式

deploy

1
$ hexo deploy

部署网站。

参数 描述
-g, --generate 部署之前预先生成静态文件

该命令可以简写为:

1
$ hexo d

render

1
$ hexo render <file1> [file2] ...

渲染文件。

参数 描述
-o, --output 设置输出路径

migrate

1
$ hexo migrate <type>

从其他博客系统 迁移内容

clean

1
$ hexo clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。

list

1
$ hexo list <type>

列出网站资料。

version

1
$ hexo version

显示 Hexo 版本。

选项

安全模式

1
$ hexo --safe

在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。

调试模式

1
$ hexo --debug

在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub

简洁模式

1
$ hexo --silent

隐藏终端信息。

自定义配置文件的路径

1
2
3
4
5
# 使用 custom.yml 代替默认的 _config.yml
$ hexo server --config custom.yml

# 使用 custom.yml 和 custom2.json,其中 custom2.json 优先级更高
$ hexo generate --config custom.yml,custom2.json,custom3.yml

自定义配置文件的路径,指定这个参数后将不再使用默认的 _config.yml
你可以使用一个 YAML 或 JSON 文件的路径,也可以使用逗号分隔(无空格)的多个 YAML 或 JSON 文件的路径。例如:

1
2
3
4
5
# 使用 custom.yml 代替默认的 _config.yml
$ hexo server --config custom.yml

# 使用 custom.yml, custom2.json 和 custom3.yml,其中 custom3.yml 优先级最高,其次是 custom2.json
$ hexo generate --config custom.yml,custom2.json,custom3.yml

当你指定了多个配置文件以后,Hexo 会按顺序将这部分配置文件合并成一个 _multiconfig.yml。如果遇到重复的配置,排在后面的文件的配置会覆盖排在前面的文件的配置。这个原则适用于任意数量、任意深度的 YAML 和 JSON 文件。

显示草稿

1
$ hexo --draft

显示 source/_drafts 文件夹中的草稿文章。

自定义 CWD

1
$ hexo --cwd /path/to/cwd

自定义当前工作目录(Current working directory)的路径。

框架的基本结构

Hexo 搭建个人博客 #03 框架的基本结构与打包后的文件介绍 | 杨斌的博客 (y0ngb1n.github.io)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.
├── .deploy_git
├── node_modules
├── public
├── scaffolds
│ ├── draft.md
│ ├── page.md
│ └── post.md
├── source
│ └── _posts
│ └── hello-world.md
├── themes
├── .gitignore
├── _config.yml
├── db.json
├── package.json
└── package-lock.json

.deploy_git

在输入 hexo d 部署到 GitHub 后自动创建。该目录的结构和 public 目录基本一致(不一致的情况是由于重新生成,但是没有发布站点造成,此时 public 内容新于 .deploy_git 内容)。

node_modules

存放安装的 Hexo 扩展,都是相应的 node 依赖模块。

public

在执行 hexo g 命令时,Hexo 程序会编译 sourcetheme 目录,生成的静态网页内容目录就是 piblic

生成好的 public 文件夹内容就可以直接当成静态网站进行部署。

在执行 hexo d 命令时,会将 piblic 目录内容复制到 .deploy_git 目录。

scaffolds

scaffolds 是“脚手架、骨架”的意思,当你新建一篇文章(hexo new 'title')的时候,Hexo 是根据这个目录下的文件进行构建的。

source

存放用户资源的地方。

_posts

存放博客文章的地方,其中的 markdown 文件、HTML 文件、org 文件等会被解析并放到 public 文件夹,发布到站点。

其它以 _(下划线)开头的文件 / 文件夹

将会被忽略。因此可以在 source 目录下创建 _drafts 目录用于存放未完成的草稿,其中内容不会发布到网站。

其它非 _ 开头的文件 / 文件夹

会被拷贝到 public 目录并上传到站点。

  • 可以创建 img 目录来存放在博客引用到的图片等。
  • 要添加新的页面(例如 about),执行 hexo new page PageName 命令即会在 source 中自动新建子目录 PageName
  • favicon.ico 在主题配置文件中引用 /favicon.ico 来设置站点的页面图标。

themes

网站的主题目录。默认安装 landscape 主题,你可以安装新主题到 themes 目录,也可以自己新建主题。

_config.yml

全局配置文件,网站的很多信息都在这里配置,诸如网站名称,副标题,描述,作者,语言,主题,部署等等参数。

db.json

自动生成的一个文件 JSON 文件,可以对博客的文件进行管理查找的,可以忽略。

package.json

Hexo 框架的参数和所有依赖的插件。


Hexo命令与目录结构
https://cosmicdusty.cc/post/Knowledge/HexoCommands/
作者
Murphy
发布于
2022年2月7日
许可协议