Hexo部署指南及踩坑记录


为什么选择 Hexo

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

从上面的介绍我们可以注意到这个东西:

即可利用靓丽的主题生成静态网页。

也就是说,我们可以很容易的将基于 Hexo 搭建的博客系统运行在 Github Pages 上

这意味着:能白嫖!能白嫖!(参见:《如何用最少的钱开一个网站?》

初始化 Hexo

您需要先准备以下环境:

  1. Node.js(>=12)
  2. Git

使用 npm 安装 hexo

1
2
3
4
# Windows
npm install -g hexo-cli
# Linux
sudo npm install -g hexo-cli

之后,使用 hexo init 命令初始化您的博客

1
hexo init [目录名称]

如果不传入[目录名称]参数,hexo-cli 在当前目录下初始化博客

创建完成后,目标目录看起来像这样

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

您需要按自己需求修改 hexo 站点配置(_config.yml)文件,参考 配置 | Hexo

一般来说,您只需要修改以下配置项:

  1. title:站点标题
  2. subtitle:站点副标题
  3. author:作者名,也就是您的名字
  4. language:语言,可直接设为zh-CN
  5. timezone:时区,可直接设为Asia/Shanghai
  6. url:站点网址
测试您的配置

您可以在站点根目录使用hexo server指令启动 hexo 自带的服务器,之后使用浏览器访问 127.0.0.1:4000 查看您的更改

修改主题

您可以前往这里选择您的主题

部分主题可以直接用 npm 安装

部分主题需要您下载压缩包并解压到themes目录下

随后,修改 hexo 站点配置,将them项改为您的主题

部分主题可能会拥有自己的配置文件,主题配置在博客根目录下的_config.主题名.yml内(可能需要您手动复制/创建),具体参见主题的 README.md 文件

部署到 github

具体部署方法详见在 Github 上部署 Hexo

注意事项

如果您是使用 git 创建仓库或您修改了设置,您的仓库的默认分支名称可能为master或其他而不是main

请修推送改指令为:

1
git push -u origin 您分支的名称,如master

.github/workflows/pages.ymlon.push.branches

1
2
3
4
5

on:
push:
branches:
- 您的分支名称,如master # default branch

在每次推送后,github 会自动执行编译任务

如果您的仓库名不是用户名.github.io,默认请在用户名.github.io/仓库名访问您的博客

配置评论

因为 Hexo 是静态,所以 Hexo 默认不带有评论

可以使用gitalkgitment等将issue作为您博客的评论,具体参考其项目主页

但是此处有大坑需要注意

上文提到的两个评论插件会要求您申请 OAuth APP以登录github帐号,进入 Strring>Developer strring 创建

  • Application name:您的站点名
  • Homepage URL:您的博客首页URL
  • Authorization callback URL:回调URL

回调URL 需要填您的博客所使用的协议(一般是https://)+所在的域名(一般不含二级域名)

比如本博客的主页地址为:https://blog.thisisxd.top/index.html

则 回调URL 为:https://thisisxd.top

如果 回调URL 错误,登录就会返回error

具体多试试,不成功可以在下面发评论问

常见异常

Error: Not Found

此错误可能是由于以下原因引起的:

  1. 仓库未公开
  2. 仓库未开启issue
  3. 仓库未初始化issue

初始化 issue

  1. 在仓库设置中,勾选Issue,保存并刷新页面
  2. 打开仓库Issues,点击New Issue,编辑内容并提交,即可初始化Issue

Error: Validation Failed.

此错误可能是由于以下原因引起的

  1. 文章标题过长导致url过长

您可以 [修改][8] 文章 [永久链接][7] 以消除此错误

建议阅读

Hexo官方文档