Hexo命令与目录结构
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
超快速度:Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
支持 Markdown:Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
一键部署:只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。
插件和可扩展性:强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
Hexo 命令
init
1 |
|
新建一个网站。如果没有设置 folder
,Hexo 默认在目前的文件夹建立网站。
本命令相当于执行了以下几步:
- Git clone hexo-starter 和 hexo-theme-landscape 主题到当前目录或指定目录。
- 使用 Yarn 1、pnpm 或 npm 包管理器下载依赖(如有已安装多个,则列在前面的优先)。npm 默认随 Node.js 安装。
new
1 |
|
新建一篇文章。如果没有设置 layout
的话,默认使用 _config.yml 中的 default_layout
参数代替。如果标题包含空格的话,请使用引号括起来。
1 |
|
参数 | 描述 |
---|---|
-p , --path |
自定义新文章的路径 |
-r , --replace |
如果存在同名文章,将其替换 |
-s , --slug |
文章的 Slug,作为新文章的文件名和发布后的 URL |
默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。对于独立页面来说,Hexo 会创建一个以标题为名字的目录,并在目录中放置一个 index.md
文件。你可以使用 --path
参数来覆盖上述行为、自行决定文件的目录:
1 |
|
以上命令会创建一个 source/about/me.md
文件,同时 Front Matter 中的 title 为 "About me"
注意!title 是必须指定的!如果你这么做并不能达到你的目的:
1 |
|
此时 Hexo 会创建 source/_posts/about/me.md
,同时 me.md
的 Front Matter 中的 title 为 "page"
。这是因为在上述命令中,hexo-cli 将 page
视为指定文章的标题、并采用默认的 layout
。
generate
1 |
|
生成静态文件。
选项 | 描述 |
---|---|
-d , --deploy |
文件生成后立即部署网站 |
-w , --watch |
监视文件变动 |
-b , --bail |
生成过程中如果发生任何未处理的异常则抛出异常 |
-f , --force |
强制重新生成文件 Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。 使用该参数的效果接近 hexo clean && hexo generate |
-c , --concurrency |
最大同时生成文件的数量,默认无限制 |
该命令可以简写为
1 |
|
publish
1 |
|
发表草稿。
server
1 |
|
启动服务器。默认情况下,访问网址为: http://localhost:4000/
。
选项 | 描述 |
---|---|
-p , --port |
重设端口 |
-s , --static |
只使用静态文件 |
-l , --log |
启动日记记录,使用覆盖记录格式 |
deploy
1 |
|
部署网站。
参数 | 描述 |
---|---|
-g , --generate |
部署之前预先生成静态文件 |
该命令可以简写为:
1 |
|
render
1 |
|
渲染文件。
参数 | 描述 |
---|---|
-o , --output |
设置输出路径 |
migrate
1 |
|
从其他博客系统 迁移内容。
clean
1 |
|
清除缓存文件 (db.json
) 和已生成的静态文件 (public
)。
在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。
list
1 |
|
列出网站资料。
version
1 |
|
显示 Hexo 版本。
选项
安全模式
1 |
|
在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。
调试模式
1 |
|
在终端中显示调试信息并记录到 debug.log
。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub。
简洁模式
1 |
|
隐藏终端信息。
自定义配置文件的路径
1 |
|
自定义配置文件的路径,指定这个参数后将不再使用默认的 _config.yml
。
你可以使用一个 YAML 或 JSON 文件的路径,也可以使用逗号分隔(无空格)的多个 YAML 或 JSON 文件的路径。例如:
1 |
|
当你指定了多个配置文件以后,Hexo 会按顺序将这部分配置文件合并成一个 _multiconfig.yml
。如果遇到重复的配置,排在后面的文件的配置会覆盖排在前面的文件的配置。这个原则适用于任意数量、任意深度的 YAML 和 JSON 文件。
显示草稿
1 |
|
显示 source/_drafts
文件夹中的草稿文章。
自定义 CWD
1 |
|
自定义当前工作目录(Current working directory)的路径。
框架的基本结构
Hexo 搭建个人博客 #03 框架的基本结构与打包后的文件介绍 | 杨斌的博客 (y0ngb1n.github.io)
1 |
|
.deploy_git
在输入 hexo d
部署到 GitHub 后自动创建。该目录的结构和 public
目录基本一致(不一致的情况是由于重新生成,但是没有发布站点造成,此时 public
内容新于 .deploy_git
内容)。
node_modules
存放安装的 Hexo 扩展,都是相应的 node 依赖模块。
public
在执行 hexo g
命令时,Hexo 程序会编译 source
、theme
目录,生成的静态网页内容目录就是 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 框架的参数和所有依赖的插件。