博客建立过程记录:Hexo+Github Page
之前博客使用的是Jekyll在Github Page搭建个人博客,但是不知道什么原因,该主题的CSS样式和布局出现了问题,在博客页面并没有生效。
而在2024-3-10的时候学校钉钉平台推送了Kitex 负载均衡源码解读之加权负载均衡算法 | NX の 博客 (nickxu.me),发现他博客的主题风格很喜欢,加上前文说的博客的CSS渲染出现问题,于是决定尝试搭建与之相同的博客页面。
一、参考教程
Hexo:提供了最基本的Hexo文档,讲解了如何生成部署
Butterfly:一个Hexo下、卡片布局风格的主题,提供了该主题的自定义配置
二、安装Hexo
基本过程:
我准备这次采用先用Hexo生成静态文件,再将HTML发布到github代码库并用GitHub Pages部署。
根据Hexo文档介绍,安装 Hexo 相当简单(真的吗qwq),只需要先安装下列应用程序即可:
如果您的电脑中已经安装上述必备程序,你可以直接前往 安装 Hexo 步骤。
如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。
我在此之前已经有安装了这两个应用程序,就直接开始进行Hexo的安装。
在你想要的目录下git bash here,使用 npm 安装 Hexo。
1 | npm install -g hexo-cli |
然后之后就可以运行以下指令在本地生成一个Hexo:
1 | hexo init <folder> #在当前目录下的<folder>文件夹内生成一个Hexo,若不填,则直接在该目录下生成 |
接下来就可以参考文档里的介绍,去了解各个文件夹的功能和配置文件(_config.yml)
的使用了。
常用命令:
1 | #将course下的MarkDown文件生成Html |
遇到问题:
我第一次使用hexo init的时候出现了hexo: command not found的报错,但是我现在忘记了怎么解决的了。😀
三、安装Butterfly主题
过程:
若前面的Hexo安装完成,这里基本上按照Butterfly作者写的教程就能正常按照。
注意:
其中需要注意:
- 通过 npm 安装并不会在 themes 里生成主题文件夹,而是在 node_modules 里生成。
- 用git安装
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
安装在themes/butterfly - 主题的
_config.yml
和Hexo的_config.yml
是不一样的,按照教程按照时需要注意是哪一个。
我个人推荐使用Git安装,这样找主题的_config.yml
比较方便。
四、部署到Github Pages
建立代码库和连接
由于我之前已经进行了GitHub代码库的建立,所以这次并没有进行这一步,若没有做,需要去参考其他文章进行建立。
大致过程如下:
- 创建 SSH 密钥
- 添加密钥
- 进行连接
- 创建Github Pages库
使用 hexo-deployer-git部署
- 首先需要安装hexo-deployer-git。
1
npm install hexo-deployer-git --save
- 在Hexo的
_config.yml
下修改配置。(注意不是themes主题下的_config.yml
!)
1 | deploy: |
3.执行hexo clean
和hexo d
部署
使用Github Actions部署网站
- 进入自己的GithubPages库。
- 进入
Setting
页面,其中有个Build and deployment
分支,将Source
选为Github Actions。
- 点击右边的
Static HTML
的configure
。 - 直接点击右侧绿色按钮
Commit Change
,一路确认。
这个时候你的库中会出现有个.github/workflows
,里面有个static.yml
文件,在每次hexo d
后,github就会通过这个文件去运行部署网站。
设置完成后,过一段时间,就可以进入https://你的用户名.github.io
进入博客了。
个人遇到问题和注意
这里有个官方提示:
这一切是如何发生的?
当执行hexo deploy
时,Hexo 会将public
目录中的文件和目录推送至_config.yml
中指定的远端仓库和分支中,并且**完全覆盖**该分支下的已有内容。
这里我就遇到这个问题:
当我每次hexo d
后,我的Github Pages并没有更新,但是我的文件是已经上传上去了,经过检查发现,每次推送后,.github
文件夹直接消失,也就是官方所说的,我之前的东西被完全覆盖了,因此,如果你有写README.md
也会消失。
之后在询问了 NX 大佬后,他给出的建议是在本地Hexo文件下的source
文件夹或者是.deploy_git
主动添加这些文件。
经过试验,在.deploy_git
下添加.github/workflows/static.yml
,就可以把这个配置文件也推送上去,那么README.md
应该也同理。
后续
之后就是通过修改主题的配置文件简单美化网站,把之前的markdown文件放入_post里,完成网站。