Hexo 初体验

Hexo 是一个基于 Node.js 的开源静态博客框架,类似的项目还有基于 Ruby 的 Jekyll,基于 Go 的 Hugo,基于 Python 的 Pelican 等等。之所以选择 Hexo,主要是因为它不仅使用人数多,而且有中文文档。

安装

安装 Hexo 前,需要安装 Node.jsGit,安装 Node.js 的同时,npm(Node Package Manager)也已经被自动安装了,同时安装程序也自动配置了环境变量。确定安装完成后,可以输入 node -v 来测试 Node.js 是否成功安装,输入 npm -v 来测试 npm 是否成功安装。

npm 成功安装后,可使用 npm install -g hexo-cli 来快速安装 Hexo 命令行工具。其次你还需要安装 npm-check-updates 包,它用于以后 Hexo 及其插件的更新。参数 -g 表示全局安装,npm 的包安装分为本地安装(local)和全局安装(global)两种,区别在于:

本地安装:

  • 将安装包放在 ./node_modules 下(运行 npm 时所在的目录)
  • 可以通过 require() 来引入本地安装的包

全局安装:

  • 将安装包放在 /usr/local
  • 可以直接在命令行里使用

关于 npm 更多的内容请参考 npm 模块安装机制简介

更新

博客所在目录 执行 hexo version 即可查看 Hexo 版本信息。

要更新 Hexo 及其插件到最新 版本,需要在 博客所在目录 执行如下命令:

1
2
npm-check-updates -u
npm install

若只想更新 Hexo 及其插件到最新 版本,则只需在 博客所在目录 执行 npm update 即可。

要更新 hexo-cli,你只需要再次执行 npm install -g hexo-cli 安装即可。

常用命令

新建一个网站

1
hexo init [folder]

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

新建一篇文章

1
2
3
hexo n [layout] <title>
# 或
hexo new [layout] <title>

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

启动服务预览

1
2
3
hexo s
# 或
hexo server

默认情况下,访问网址为:http://localhost:4000/

生成静态文件

1
2
3
hexo g
# 或
hexo generate

部署网站

1
2
3
hexo d
# 或
hexo deploy

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

1
hexo clean

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

更多

目录结构

Hexo 生成的网站目录结构如下:

  • public/:此目录下保存着已经生成的静态文件
  • scaffolds/:此目录下存放 Hexo 模板,当您新建文章时,Hexo 会根据 scaffold 来建立文件。
  • source/:此目录下存放用户资源
    • _posts/:此目录下存放 Markdown 格式的源文章
    • images/:此目录下存放相关图片文件
  • themes/:此目录下保存着主题文件
  • _config.yml:此文件为站点配置文件

最佳实践

站点配置文件(_config.yml)中的 url 字段务必要填写为自己站点的正确网址,否则分享自己站点内文章时会生成错误链接。

新建文章(hexo n <title>)时建议使用小写英文作为文件名,此文件名将作为文章链接的一部分,英文中的空格将自动用 - 替代,文章标题可以在文件中另行设置。

和传统的博客一样,建议开启分类(category)和标签(tag)功能,在 Hexo 中,分类具有顺序性层次性,也就是说 Foo,Bar 不等于 Bar,Foo,而标签没有顺序和层次。简单来说,分类应该是经过深思熟虑的,而标签则可适文章而决定,分类一般只有几个,而标签可以有一堆。具体而言,可以参考本站点的分类标签设计。

插件

Hexo 支持许多插件,个人经常使用的插件如下:

使用如下命令即可安装上面提到的所有插件:

1
npm install hexo-deployer-git hexo-generator-feed hexo-generator-sitemap hexo-symbols-count-time hexo-generator-searchdb

主题

安装 Hexo 后,默认使用的主题为 landscape,个人不是很喜欢这个主题,所幸的是 Hexo 提供更多的第三方主题,个人倾向于使用广为流行的 NexT 主题

值得注意的是,NexT 主题在 6.0.0 版本之前由 iissnan 个人维护,其官方仓库为 https://github.com/iissnan/hexo-theme-next ,官网为 https://theme-next.iissnan.com/ ;在 6.0.0 版本之后由 theme-next 组织维护,其官方仓库更改为 https://github.com/theme-next/hexo-theme-next ,官网为 https://theme-next.org ;在 8.0.0 版本之后由 next-theme 组织维护,其官方仓库更改为 https://github.com/next-theme/hexo-theme-next ,官网为 https://theme-next.js.org/ ;这里所介绍的使用方法均以 8.0.0 版本之后为例。

NexT 主题安装

要安装 NexT 主题,首先要进入 Hexo 站点目录下,接着执行 https://github.com/next-theme/hexo-theme-next themes/next 命令,即可将 NexT 仓库克隆到本地。要启用 NexT 主题,只需在站点配置文件中找到 theme 字段,并将其值更改为 next 即可。

NexT 主题更新

要查看正在使用的 NexT 主题的版本,有如下几种方法:

  • 可直接打开主题配置文件(即站点目录下的 /themes/next/_config.yml 文件),在其底部 version 字段即可查看版本号。
  • 在自己站点的底部一般会有 Hexo 和 NexT 的版本号

和传统的 Git 仓库更新一样,进入站点目录下的 /themes/next 文件夹,执行 git pull 命令即可从官方仓库拉取最新代码进行更新。

如果你使用的是 6.0.0 之前的版本,现在想要升级到 6.0.0 之后的版本,可参考 theme-next 官方给出的解决方案

如果你使用的是 8.0.0 之前的版本,现在想要升级到 8.0.0 之后的版本,可参考 next-theme 官方给出的解决方案

主题配置

关于 Hexo 的更多问题,请参考 Hexo 官方文档,或 YouTube 上 Hexo 系列教程视频;关于 NexT 主题的更多问题,请参考旧版的中文 NexT 使用文档;关于如何利用 Hexo 以及 GitHub Pages 搭建个人博客的更详细内容,请参考 GitHub + Hexo 搭建个人网站详细教程