博客历史

语言迭代

php-java-java-nodejs

程序迭代

wp-oneblog-halo-hexo

累了,短时间不准备动了,不过都整理成md了,后续迁移应该还好。halo导出(20250815)没有时间和title,累死了。希望后续有插件更新支持。

背景

之前接触过hexo,不过不怎么用git action,就没选用。最近用多了,还是给博客进行一次迭代吧,刚好也可以用下git。

搜了一大圈教程,很多都是hexo转halo,而我反而是和大多数人背道而驰的。

hexo是静态博客,有很多插件可以使用,主要是最近用claude code,想着能改代码能生成文件,直接本地产生了就推送博客,挺好玩。

基于hexo开源框架搭建博客,然后直接在github page平台上托管我们的博客,就只剩下用心写好内容这一步了。

浏览一圈:Hexo, 产品成熟,使用简单,功能强大,有丰富的各种插件资源;但,像发布后台、站内搜索,评论系统类似诉求,虽然有对应的工具,但也需要折腾,慢慢完善吧。

初体验

hexo的初级搭建还有部署到github page上,以及个人域名的绑定。

1. 安装Git

2. 安装Node.js

这里我是使用nvm管理安装的。

3. 安装Hexo

前面git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右键git bash打开)。

比如我的博客文件都存放在\MyBlog目录下。

在该目录下右键点击Git Bash Here,打开git的控制台窗口,以后我们所有的操作都在git控制台进行,就不用Windows自带的cmd了。

定位到该目录下,安装Hexo。安装完后输入hexo -v验证是否安装成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ npm install -g hexo-cli
added 53 packages in 4s
$ hexo -v
hexo-cli: 4.3.2
os: win32 10.0.19044 undefined
node: 18.18.2
acorn: 8.10.0
ada: 2.6.0
ares: 1.19.1
brotli: 1.0.9
cldr: 43.1
icu: 73.2
llhttp: 6.0.11
modules: 108
napi: 9
nghttp2: 1.57.0
nghttp3: 0.7.0
ngtcp2: 0.8.1
openssl: 3.0.10+quic
simdutf: 3.2.14
tz: 2023c
undici: 5.26.3
unicode: 15.0
uv: 1.44.2
uvwasi: 0.0.18
v8: 10.2.154.26-node.26
zlib: 1.2.13.1-motley

至此hexo就安装完了。

接下来初始化一下hexo,即初始化我们的网站,初始化文件夹

hexo init MyBlog

这个MyBlog可以自己取什么名字都行,然后,接着输入npm install安装必备的组件。

1
2
3
4
5
$ hexo init ssbx
INFO Validating config
INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
INFO Install dependencies
INFO Start blogging with Hexo!
1
2
3
4
5
6
7
8
$ cd ssbx      //进入这个MyBlog文件夹
Administrator@PC-20240827ZPOJ MINGW64 ~/developments/node/ssbx/ssbx
$ npm install

added 1 package in 527ms

31 packages are looking for funding
run `npm fund` for details

生成静态网页

1
2
3
4
5
6
$ hexo g
INFO Validating config
...
INFO Generated: css/images/banner.jpg
INFO Generated: 2025/08/15/hello-world/index.html
INFO 11 files generated in 144 ms

完成后,指定文件夹MyBlog目录下有:

1
2
3
4
5
6
node_modules: 依赖包
public:存放生成的页面
scaffolds:生成文章的一些模板
source:用来存放你的文章
themes:主题**
_config.yml: 博客的配置文件**

这样本地的网站配置也弄好啦,然后打开本地服务器,hexo server(或者简写:hexo s))

1
2
3
4
$ hexo s
INFO Validating config
INFO Start processing
INFO Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

然后浏览器打开http://localhost:4000/,就可以看到我们的博客啦,效果如下:

按ctrl+c关闭本地服务器。

4. 注册Github账号创建个人仓库

接下来就去注册一个github账号,用来存放我们的网站。大多数小伙伴应该都有了吧,作为一个合格的程序猿还是要有一个的。

打开https://github.com/,新建一个项目仓库New repository,如下图所示,输入自己的项目名字,后面一定要加.github.io后缀,README文件要开启。

要创建一个和你用户名相同的仓库,后面加.http://github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是http://xxxx.github.io,其中xxx就是你注册GitHub的用户名。例如我的:http://xiehs211.github.io

5. 生成SSH添加到GitHub

生成SSH添加到GitHub,连接Github与本地。
右键打开git bash,然后输入下面命令:

1
2
git config --global user.name "yourname"
git config --global user.email "youremail"

这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。例如我的:

1
2
git config --global user.name "xiehs211"
git config --global user.email "philovo@i.smu.edu.cn"

可以用以下两条,检查一下你有没有输对

1
2
git config user.name
git config user.email

然后创建SSH,一路回车

ssh,简单来讲,就是一个秘钥,其中,id_rsa是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。

ssh-keygen -t rsa -C "youremail"

这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。或者git bash中输入

cat ~/.ssh/id_rsa.pub

将输出的内容复制到框中,点击确定保存。

打开github,在头像下面点击settings,再点击SSH and GPG keys,新建一个SSH,名字随便取一个都可以,把你的id_rsa.pub里面的信息复制进去。如图:

在git bash输入ssh -T git@github.com,如果如下图所示,出现你的用户名,那就成功了。

1
2
$ ssh -T git@github.com
Hi xiehs211! You've successfully authenticated, but GitHub does not provide shell access.

6. 将hexo部署到GitHub

这一步,我们就可以将hexo和GitHub关联起来,也就是将hexo生成的文章部署到GitHub上,打开博客根目录下的_config.yml文件,这是博客的配置文件,在这里你可以修改与博客配置相关的各种信息。

修改最后一行的配置:

1
2
3
4
deploy:
type: git
repository: https://github.com/xiehs211/xiehs211.github.io
branch: main

repository修改为你自己的github项目地址即可,就是部署时,告诉工具,将生成网页通过git方式上传到你对应的链接仓库中。

注:branch很多教程写的是master,github2020认定默认主分支名main,所以我们直接修改为main。

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。

1
2
3
4
5
6
$ npm install hexo-deployer-git --save

added 9 packages in 1s

37 packages are looking for funding
run `npm fund` for details

然后hexo clean清除了你之前生成的东西,也可以不加。

1
2
3
4
$ hexo clean
INFO Validating config
INFO Deleted database.
INFO Deleted public folder.

hexo generate顾名思义,生成静态文章,可以用 hexo g缩写

1
2
3
4
5
$ hexo generate
INFO Validating config
...
INFO Generated: 2025/08/15/hello-world/index.html
INFO 11 files generated in 152 ms

hexo deploy部署文章,可以用hexo d缩写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ hexo deploy
INFO Validating config
INFO Deploying: git
INFO Setting up Git deployment...
Initialized empty Git repository in C:/Users/Administrator/developments/node/ssb
x/ssbx/.deploy_git/.git/
[main (root-commit) 1dc5b17] First commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 placeholder
INFO Clearing .deploy_git folder...
...
+ 2905e84...75053ea HEAD -> main (forced update)
branch 'main' set up to track 'https://github.com/xiehs211/xiehs211.github.io/ma
in'.
INFO Deploy done: git

注意deploy时可能要你输入username和password(可能密码不行,就生成ghp密钥作为密码输入这里)

得到INFO Deploy done: git就说明部署成功了,过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!

7. 设置个人域名

直接解析域名的CNAME记录到你的Git二级域名,记录类型选择CNAME进行解析,记录值填的就是username.github.io。

在 hexo 项目下,source 文件夹下面创建 CNAME 文件(没有后缀名的),在里面写上购买的域名。比如:
b.voiceclouds.cn

在 github 上面,打开 username.github.io 项目的(Settings)设置,然后在Pages的 Custom domain设置里填上购买的域名。比如:

保存,等github配置完成(检查你的解析,自动的),就可以访问了。

8. 安装主题stellar

编辑_config.yml中:
theme: stellar 原来是landscape
git bash中继续运行:

1
2
3
4
5
$ npm i hexo-theme-stellar
...
added 20 packages in 2s
46 packages are looking for funding
run `npm fund` for details

输入hexo g生成静态网页,然后输入hexo s可以本地预览效果,最后输入hexo d上传到github上。这时打开你的github.io主页就能看到发布的文章啦。

默认主题:

换stellar后:


还是好看很多的,主题可以去官网看自己喜欢的更换yml中设置。

8. 写文章、发布文章

首先在博客根目录下右键打开git bash,安装一个扩展

1
2
3
4
5
$ npm i hexo-deployer-git
...
up to date in 623ms
46 packages are looking for funding
run `npm fund` for details

然后新建一篇文章。

1
2
3
4
$ hexo new post "第一篇文章"
INFO Validating config
...
INFO Created: ~\developments\node\ssbx\ssbx\source\_posts\第一篇文章.md

然后打开\MyBlog\source_posts的目录,

可以发现下面多了一个文件夹和一个.md文件,一个用来存放你的图片等数据,另一个就是你的文章文件啦。

你可以会直接在vscode里面编写markdown文件,可以实时预览,也可以用用其他编辑md文件的软件的工具编写。

编写完markdown文件后,根目录下输入hexo g生成静态网页,然后输入hexo s可以本地预览效果,最后输入hexo d上传到github上。这时打开你的github.io主页就能看到发布的文章啦。

到这儿就完成了,已经完整搭建起一个比较简陋的个人博客了,后面我们就可以对我们的博客进行个性化定制了。

参考:
Hexo+Github博客搭建完全教程