Hexo博客搭建教程
这几天忽然翻到了Qexo这个项目,有了Qexo写文章就可以更加方便了,于是我将我的博客迁移从Gridea到了Hexo。Hexo的上手门槛要比Gridea高不少,为了实现自动化部署也翻阅了不少资料。在此记下一点心得。由于过程中没有截图,因此文章大部分内容都会以文字叙述进行,我会尽量叙述完整。
以下的文章都基于Windows环境操作。
你都用Linux了你还需要看这篇文章吗?Mac用户:?
环境依赖安装
下载Node.js和Git两个工具,Node.js选择LTS版本就可以,Git可以选择Standalone Installer版本,安装更方便,位数根据电脑自身确定。安装时直接一直下一步就好了。
在下载安装完毕后,打开cmd,输入以下命令:
1 | npm --version |
如果能看到像是下方这样的输出,就证明安装完成了。
1 | Microsoft Windows [版本 10.0.22621.1928] |
创建仓库
在Github注册一个账号。注册成功后点击你的头像,选择Your repositories,在弹出来的页面中点击绿色的New按钮,创建仓库。我们一共需要创建两个仓库,分别是:
(1)存放博客文件的仓库,仓库名字(也就是Repository name)这一栏必须填写为你的用户名.github.io,比如我的这个仓库名字就是 LostPear/lostpear.github.io
。
(2)存放博客源文件的仓库。仓库名字任意,权限建议为 Private
。为了方便描述,这篇教程中我们把仓库名定义为 Username/HexoSourceFile
。
创建好后备用。
初始化Hexo文件
我们先把存放博客源文件的仓库复制下来,在这里假设我们复制到D盘。
打开cmd命令窗口,先用 cd
命令移动到D盘:
1 | cd D:\ |
(可选) 为了确保Git可以顺利访问Github,我们可以设置Git的代理。命令如下:
1 | git config --global https.proxy http://127.0.0.1:7890 |
其中 https://127.0.0.1:7890
为代理的地址,这一种情况可以在Clash代理的条件下使用,需要在Clash中开启 Allow LAN
。
Git使用时需要指定用户信息。使用以下命令:
1 | git config --global user.name “你的Github用户名" |
为了保证Git可以正常使用,需要生成ssh密钥并添加到账户中。使用以下命令:
1 | ssh-keygen -t rsa -C "你注册Github使用的邮箱" |
期间一直按回车就可以。打开Github,点击右上角头像选择 Settings
,再点击 SSH and GPG keys
,点击 New SSH
,名字随意。在桌面上点击鼠标右键,选择 Git Bash Here
,输入:
1 | cat ~/.ssh/id_rsa.pub |
将输出的内容全部复制到Key这一栏,保存。回到cmd窗口,输入:
1 | ssh -T [email protected] |
如果出现类似于下方这样的输出信息,这一步就完成了。
1 | Microsoft Windows [版本 10.0.22621.1928] |
接着使用以下命令把仓库复制到本地:
1 | git clone https://github.com/Username/HexoSourceFile.git |
本地仓库保存在D:\HexoSourceFile
下,一会还需要用到这个仓库目录。
接下来部署hexo。打开一个新的cmd窗口。为了加快部署速度,我们将下载的源换到淘宝源:
1 | npm config set registry https://registry.npmmirror.com |
然后安装Hexo以及相关依赖:
1 | npm install hexo-cli -g |
新建一个空文件夹存放生成的hexo文件,在这里假设为D:\HexoTemp
。利用cd
命令切换到这里,在这个空文件夹下执行以下命令进行Hexo的初始化:
1 | hexo init |
再运行以下命令,安装运行hexo需要的基础插件:
1 | npm install |
运行完成后你会看到一堆文件,这些就是Hexo的源文件。你可以翻阅这篇教程来了解它们的用途。把这个文件夹下的全部文件复制到D:\HexoSourceFile
里。全部完成后备用。
创建自动化部署
先打开这个项目,点击 Fork
把这个项目拷贝一份到我们的账户里,在这里指定为 Username/hexo-deploy-github-pages-action
。Fork的主要目的是为了方便我们的修改。
之后打开你源文件的地址,点击上面一栏的 Action
按钮,点击Simple workflow下的 Configure
,删除里面的所有内容,输入以下指令保存(一部分需要按照注释修改):
1 | name: Hexo Deploy GitHub Pages |
在主页点击你的头像,选择 Settings
->Developer Options
,选择 Personal access tokens
下的 Tokens (classic)
,在右边选择 Generate new token
->Generate new token (classic)
,名字随便取,Expiration
选择 No expiration
,勾选 repo
,workflow
,write:packages
,user
,保存。随后会出现一段代码,一定要保存好,它只会出现这一次,如果没有及时保存就需要重新创建了。
打开你存放源文件的仓库,点击 Settings
->Secerts and variables
,点下面的 Actions
,点击右边的 New repositery secret
,名字输入 HEXO_DEPLOY
,内容输入你刚刚得到的token,保存。
上传博客文件
这一步我们使用Git把文件上传仓库。用cd
命令切换到本地仓库下。
1 | cd D:\HexoSourceFile |
先把仓库同步到最新状态,便于之后上传新文件:
1 | git pull |
首先,把这个仓库中的文件存到暂存区。输入以下命令:
1 | git add ./ |
随后,输入以下命令确认即将修改的文件,确保没有红色:
1 | git status |
然后,使用以下命令编辑此次提交的信息:
1 | git commit -m "描述信息" |
最后,提交更改:
1 | git push |
等待两三分钟部署完成之后,访问 https://Username.github.io
,你就能看到自己的网页了。
你也可以利用 Visual Studio Code 来进行可视化的Git管理,此处不再赘述。
部署到Vercel
国内访问Github实在是太慢了,这会严重拖累你博客的访问速度。我们可以部署到Vercel来改善这个问题。
使用这种方法,你必须要有一个自己的域名,因为Vercel默认为项目提供的域名在国内是被屏蔽的,但是Vercel为项目提供的的加速服务还是能够正常用的。
打开Vercel官网,使用你的Github账户登录,注册好后点击头像选择 Dashboard
,在新页面中选择右上角的 Add New...
,选择 Project
。随后,左侧的 Import Git Repository
中,选择你存放博客文件的仓库(也就是第一个)点 Import
,项目名字随便取,点击 Deploy
。部署完成后,点击 Domains
,添加你想要的域名。
在这里添加你的域名的时候,最好不要直接设置你的根域名,二是加一个二级解析。举个例子,如果你购买的域名是
example.com
,那么你不要直接把这个设置为你的网站域名,而是更改为二级域名,比如blog.example.com
。
设置好之后,按照提示在你的域名服务商处添加DNS解析记录。
回到工作目录,编辑 _config.yml
,url:
后的内容改为你刚刚设置的域名地址,随后保存并使用Git进行提交。全部设置完毕后,访问你的域名,应该就能看到你的博客页面了。
(可选) 设置图床
请参阅PicGo的设置文档,此处不再赘述。
(可选) 你可以设置CDN,来加快图片在国内的访问速度。
(可选) 设置Qexo
Qexo是一个开源项目,它可以很方便地对Hexo博客进行管理。设置Qexo请参阅文档。
如果要用Qexo设置图床,要注意的是自定义域名的填写逻辑与PicGo是不一样的。Qexo填写时需要精确到你的文件名。
至此所有的设置就已经完成了。至于更高级的Hexo玩法,就请自己探索体验吧。
一些小建议:
- 每次在本地编辑博客时,最好先执行一次
git pull
命令同步最新的源文件,防止提交时因为冲突而报错。- 如果想要为博客设置封面,使用Qexo写作时,在
其他参数
一栏下新建一个名为cover
的参数,后面写你需要做封面的图片地址。- 在本地编辑博客时,可以通过
hexo s
临时查看博客渲染后的样式。