Hexo命令详解
1. 背景介绍
本文主要讲解 hexo cli 的使用和详细信息,以及相关示例.
2. Hexo 项目初始化
初始化项目(博客网站), 可以使用 init 命令
1 | $hexo init [folder] |
说明:
- 用于新建一个网站。
- 如果没有设置 folder ,Hexo 默认在当前的文件夹建立网站。
- 本命令相当于执行了以下几步:
Git clone hexo-starter 和 hexo-theme-landscape 主题到当前目录或指定目录.
使用 Yarn 1、pnpm 或 npm 包管理器下载依赖(如有已安装多个,则列在前面的优先)。npm 默认随 Node.js 安装, nodejs 安装可以参考安装并配置 nodejs。 - 延伸阅读我的博客使用 Hexo 搭建自己的博客网站
3. Hexo new 命令
1 | hexo new [layout] <title> |
新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。
这里 layout 在很多文章中都翻译成布局似乎不能反应它在上下文中的意思,查了一下词典,它还有一个意思叫版面,更贴切一些,版面在汉语中的意思如下
版面是一个印刷词汇,指印刷好的页张,包括图文、余白整个部分。
Hexo 有三种默认版面:post、page 和 draft,它们分别对应不同的路径,而您自定义的其他版面和 post 相同,都将储存到 source/_posts 文件夹。
这里的 title 是必须指定的,如果标题包含空格的话,请使用引号括起来。例如:
1 | $hexo new "post title with whitespace" |
new 指令还有一些选项可供使用
参数 | 描述 |
---|---|
-p, –path | 自定义新文章的路径 |
-r, –replace | 如果存在同名文章,将其替换 |
-s, –slug | 文章的 Slug,作为新文章的文件名和发布后的 URL |
说明:
- 这里的 slug 也是印刷术语,而且是上一代印刷术铅字印刷术中的一个术语,意为铅字条,即把单个铅字组成一长条,其用途百度了很久也不知道和这里的文件名有何联系,如果知道的欢迎在原文下面留言.
- 默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。对于独立页面来说,Hexo 会创建一个以标题为名字的目录,并在目录中放置一个 index.md 文件。你可以使用 –path 参数来覆盖上述行为、自行决定文件的目录:
1 | hexo new page --path about/me "About me" |
以上命令会创建一个 source/about/me.md 文件,同时 Front Matter 中的 title 为 “About me”
注意!title 是必须指定的!如果不指定 title, 例如在下面的例子中:
1
hexo new page --path about/me
此时 Hexo 会创建 source/_posts/about/me.md,同时 me.md 的 Front Matter 中的 title 为 “page”。这是因为在上述命令中,hexo-cli 将 page 视为指定文章的标题、并采用默认的 layout。相信这往往不是人们所期望的.
4. 发表草稿
相信看了 Hexo new 命令的讲解后,一定还有一个疑惑,如果使用hexo new draft "xxx title"
创建了一篇草稿文章后,如果完成了文章打算发表怎么办,难道要手动的创建 post 和 page 再 copy 过去,阅读了这一节,相信大家会有更好的选择,那就是使用 publish 命令.这里吐槽一下这个命令,publish 往往隐含地意味着将文章发表到网站面向公众,而这里实际的行为是将文章由草稿状态,转变为可发表状态,中间还有校对,部署等一系列动作,其实离发表还是有一段距离.其实此命令更多的是移动文件夹,转变状态,还不如 move 或 transfer, 因为 publish 让人一下子处于一种紧张的临战状态,如果不去深入了解它实际会干什么,往往不敢轻易使用.
1 | hexo publish [layout] <filename> |
说明,这里的 layout 可以是 post 或者 page, 文件名必须指定.
5. 生成静态文件
生成静态文件使用如下命令
1 | $ hexo generate |
可用选项
选项 | 描述 |
---|---|
-d, –deploy | 文件生成后立即部署网站 |
-w, –watch | 监视文件变动 |
-b, –bail | 生成过程中如果发生任何未处理的异常则抛出异常 |
-f, –force | 强制重新生成文件 Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。使用该参数的效果接近 hexo clean && hexo generate |
-c, –concurrency | 最大同时生成文件的数量,默认无限制 |
6. 本地启动网站
1 | hexo server |
启动服务器。默认情况下,访问网址为: http://localhost:4000/。
选项 | 描述 |
---|---|
-p, –port | 重设端口 |
-s, –static | 只使用静态文件 |
-l, –log | 启动日记记录,使用覆盖记录格式 |
7. 部署
1 | $ hexo deploy |
部署网站。部署之前还有一些准备工作,请参考我的博客文章使用 Hexo 搭建自己的博客网站.
参数 | 描述 |
---|---|
-g, –generate | 部署之前预先生成静态文件 |
8. render 渲染文件
1 | $hexo render <file1> [file2] ... |
渲染文件。
参数 | 描述 |
---|---|
-o, –output | 设置输出路径 |
9. 从其他博客系统移植博客
1 | $hexo migrate <type> |
从其他博客系统 迁移内容, 目前支持从 RSS,Jekyll, Octopress, WordPress, Joomla, 具体如何移植,请参考这篇文章迁移
10. clean
1 | $hexo clean |
清除缓存文件 (db.json) 和已生成的静态文件 (public)。
在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。
11. list
1 | hexo list <type> |
列出网站资料。类型有 page, post, route, tag, category.
12. version
1 | hexo version |
显示 Hexo 版本。
13. 选项
13.1. 安全模式
1 | hexo --safe |
在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。
13.2. 调试模式
1 | hexo --debug |
在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub。
13.3. 简洁模式
1 | hexo --silent |
隐藏终端信息。
13.4. 自定义配置文件的路径
1 | # 使用 custom.yml 代替默认的 _config.yml |
自定义配置文件的路径,指定这个参数后将不再使用默认的 _config.yml。
你可以使用一个 YAML 或 JSON 文件的路径,也可以使用逗号分隔(无空格)的多个 YAML 或 JSON 文件的路径。例如:
1 | # 使用 custom.yml 代替默认的 _config.yml |
当你指定了多个配置文件以后,Hexo 会按顺序将这部分配置文件合并成一个 _multiconfig.yml。如果遇到重复的配置,排在后面的文件的配置会覆盖排在前面的文件的配置。这个原则适用于任意数量、任意深度的 YAML 和 JSON 文件。
13.5. 显示草稿
1 | hexo --draft |
显示 source/_drafts 文件夹中的草稿文章。
13.6. 自定义 CWD
1 | hexo --cwd /path/to/cwd |
自定义当前工作目录(Current working directory)的路径。