【Hexo】使用Hexo搭建个人博客

​ 搭建这个博客花费了我很大的精力,也查找了不少的资料。本文用于记录我搭建博客的经过,用于给其它想要搭建自己的个人博客的朋友提供参考。

写在前面

  1. 下载部分内容时可能需要梯子。
  2. 本文默认读者掌握基本的计算机操作方法,因此简单的注册账号、安装软件等过程将不一一赘述。
  3. 如果遇到了本文没有提到的一些问题,请善用搜索引擎,查找资料。

实现方法

​ 本博客使用 Hexo 作为静态博客框架,其基于 Node.js 实现,可以方便、快速(虽然我花了好几个小时)生成静态网页,并托管在 Github 上。Hexo 本身也是 Github 上的一个开源项目,其官网 Hexo 支持中文浏览,可以自行查阅。


基本

注册 Github 账号

​ 由于我们要把博客托管在 Github 上,因此我们首先要注册 Github 账号,注册过程不是很麻烦,但可能需要梯子访问。

在 Github 上创建个人仓库

​ 再注册完 Github 账号后,我们点击界面上的 New Repository 按钮,创建新仓库,稍后我们会把自己的博客上传到仓库里。仓库名称应该为:你的用户名.github.io

下载 Git 与 Node.js

​ Git 是开源的分布式版本控制系统,用于敏捷高效地处理项目。我们网站在本地搭建好了,需要使用 Git 同步到 GitHub 上。下载 Git 可以从官网下载。

​ 因为 Hexo 基于 Node.js 实现,因此我们也需要安装 Node.js,也从官网下载即可。在安装 Node.js 时也会同时安装环境变量及 npm,npm在后续搭建时会大量使用。

​ 在完成安装之后,我们可以在终端使用以下三行命令来检测是否安装成功:

1
2
3
$ git --version
$ node -v
$ npm -v

​ 如果都能正确的显示出版本号,则说明安装成功。

配置 Git

​ 打开Git Bash,首先配置 Git 的用户名和邮箱信息

1
2
$ git config --global user.name "GitHub用户名"
$ git config --global user.email "GitHub注册邮箱"

​ 接着,我们将 Git 与 Github 账号绑定,在命令行中生成 SSH 密钥文件:

1
$ SSH-keygen -t rsa -C "GitHub注册邮箱"

​ 如果提示你设置密码,直接留空,则默认不需要密码。

​ 在密钥生成成功后,运行 clip < ~/.SSH/id_rsa.pub 将公钥复制到剪贴板上,然后登陆你的 Github 账号,进入 Settings,点击 SSH and GPG Keys,添加你的 SSH key,标题随便填,将公钥复制进去即可。

​ 完成后,在 Git Bash 命令行输入

1
$ SSH -T git@github.com

​ 如果你可以成功认证,则代表设置正确。

安装 Hexo

​ 在电脑中合适的位置创建一个文件夹(路径最好为全英文),接着在终端中打开此文件夹,使用 npm 命令安装 Hexo:

1
$ npm install -g hexo-cli

​ 在显示完成后,在刚刚新建的文件夹里再新建一个 Hexo 文件夹,然后在终端中输入:

1
2
$ cd Hexo
$ hexo init

​ 在 Hexo 安装完成后,为了测试是否正确安装,输入以下命令:

1
2
$ hexo generate
$ hexo server

​ 如果在 http://localhost:4000/ 可以看到生成的博客,则说明搭建成功。

将博客部署到 Github

​ 打开我们先前创建的 GitHub 仓库,点击 Code,切换到 SSH,将给出的连接完整的复制下来。接着在 Hexo 文件夹中,打开根目录中的 _config.yml 文件,找到 deploy,将 type 改为 git,在 repository 后粘贴上你刚刚得到的仓库地址。由于创建仓库时默认的分支为 main,则将 branch 改成 main。

​ 接着,在 Hexo 文件夹下执行以下命令:

1
$ hexo g -d

​ 这样,你的博客就被成功部署到 Github 上了。打开 https://你的用户名.github.io 即可访问你刚部署好的博客。

上传自己的文章

在终端输入以下命令:

1
$ hexo n "文章标题"

即可在 \Hexo\source\_posts 下创建新的 .md 文档,在写完文章后参考六中的做法重新上传仓库,即可看到新的文章。


进阶

在完成上述操作后,我们已经得到了一个基本的个人博客,以下介绍更多个性化的进阶内容,但可能更加困难。

绑定个人域名

​ 如果我们想使用我们自己的个性化域名,这就需要绑定我们自己的域名。作者在 Namesilo 上购买了自己的域名,然后托管到 Cloudflare 上。(具体方法请在网上自行搜索教程),然后进入控制台,点击 DNS,添加解析记录,其中记录类型选择 CNAME,主机记录均可,同时关闭代理。

​ 进入本地博客,在 source 目录下创建一个无后缀名的文件,命名为 CNAME,然后输入你的域名并保存。

​ 最后,重新将你的博客上传到仓库中,就可以通过你自己的域名进入博客了。

更换主题

​ 如果你不喜欢Hexo默认的主题,可以更换不同的主题,可以在官网寻找不同的主题,我选择了 NEXT 主题,因为其配置功能多样,并且方便 \(\LaTeX\) 渲染。

​ 在终端中输入:

1
$ git clone https://github.com/iissnan/hexo-theme-next themes/next

​ 即可将 NEXT 主题下载到本地。在根目录下的 _config.yml 中将主题修改为 NEXT,并重新上传,即可将主题更改为 NEXT。

在安装完成后,请检查是否安装的是最新版。

在安装完成后,请检查是否安装的是最新版。

在安装完成后,请检查是否安装的是最新版。

配置文件与插件

​ 在 Hexo 文件夹及 NEXT 文件夹根目录下的 _config.yml 中都有大量配置选项,具体可查阅 Hexo 和 NEXT 的官方文档,此处不多赘述。

​ 此外,Hexo 也提供大量插件,也可以在 Hexo 官网中查询,可以实现部分进阶功能如评论、图床等。

​ 推荐参考:Hexo+Next主题搭建个人博客+优化全过程(完整详细版)

​ 如果想要切换浅/深色背景,可以参考:Hexo-NexT 深淺主題切換配置

LaTeX 的安装

\(\LaTeX\) 的安装是我在搭建过程中花费时间最长的一步,因为大多数文章并未完整讲解安装方法,给我带来了很多麻烦。

​ Hexo本身并不支持LaTeX的渲染,为了安装 \(\LaTeX\),我们首先需要卸载 Hexo 自带的renderer,并安装 hexo-renderer-pandoc

1
2
$ npm uninstall hexo-renderer-marked --save
$ npm install hexo-renderer-pandoc --save

​ 并同时安装高于 V2.0 版本的 Pandoc。

​ 接下来,我们安装 hexo-filter-mathjax,具体方法为:

1
$ npm install hexo-filter-mathjax

​ 然后在 Hexo 根目录下的 _config.yml 文件里加入以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
math:
enable: true
# Default(true) will load mathjax/katex script on demand
# That is it only render those page who has 'mathjax: true' in Front Matter.
# If you set it to false, it will load mathjax/katex srcipt EVERY PAGE.
per_page: false
engine: mathjax

mathjax:
tags: none # or 'ams' or 'all'
single_dollars: true # enable single dollar signs as in-line math delimiters
cjk_width: 0.9 # relative CJK char width
normal_width: 0.6 # relative normal (monospace) width
append_css: true # add CSS to pages rendered by MathJax
every_page: false # if true, every page will be rendered by MathJax regardless the `mathjax` setting in Front-matter

pandoc:
args:
- --mathjax

​ 除此之外,我们还要在 NEXT 的配置文件中修改部分配置,使得能够正确渲染 \(\LaTeX\),具体方法见参考文档

评论系统

​ 评论系统推荐使用 utterances,优点为无广告,稳定。其原理是在 github 中生成 issue。在低版本中,由于Hexo Next 并未集成utterances,具体安装方法可以参考这两篇文章:

  1. Hexo NexT 主题使用 utterances 搭建评论系统

  2. Hexo Next主题添加Utterances评论系统

​ 第一篇参考配置 utterances(前半部分),在Hexo Next 中安装 utterances 请参考第二篇文章。

​ 在高版本 Next 中,已经集成 utterances,按照官方文档配置即可。

​ 如果在安装完成后遇到点击 “Sign in with GitHub” 会跳转 “Example Domain” 的问题,请检查 Hexo 的 _config.yml 文件中的网站 URL 是否正确设置。


参考资料

​ 在搭建博客及写这篇文章的过程中,我参考了以下资料,向这些文章的作者致以真诚的谢意:

  1. GitHub+Hexo 搭建个人网站详细教程
  2. 使用Github Pages和Hexo搭建自己的独立博客【超级详细的小白教程】
  3. 【Hexo】Next主题更好地支持LaTeX数学公式
  4. hexo博客next主题添加对数学公式的支持
  5. 为 Hexo 的任何主题添加数学公式(LaTeX)的支持
  6. Hexo 书写 LaTeX 公式时的一些问题及解决方法
  7. Hexo构建blog时渲染LaTeX数学公式的问题
  8. hexo博客增加latex支持
  9. 让 Hexo 搭建的博客支持 LaTeX
  10. Hexo搭建博客支持LaTeX
  11. 在Hexo博客中插入图片的各种方式
  12. Hexo+Next主题搭建个人博客+优化全过程(完整详细版)
  13. Hexo-NexT 深淺主題切換配置
  14. Hexo NexT 主题使用 utterances 搭建评论系统
  15. Hexo Next主题添加Utterances评论系统
  16. 我在个人的Blogdown中点击“Sign in with GitHub”会跳转“Example Domain“”
  17. Hexo-NexT 折腾就完事儿了

常用链接

  1. Hexo 官网
  2. NEXT 主题官网