Hexo
2024-04-19 10:10:26 # blog

环境准备

hexo需要安装npm和nodejs,部署到github需要安装git

1
2
apt-get update
apt install npm nodejs git -y

配置git用户名、邮箱地址和代理

1
2
3
4
git config --global user.name "xxx"
git config --global user.email "xxx"
git config --global http.proxy 127.0.0.1:1080
git config --global https.proxy 127.0.0.1:1080

配置本地token缓存,便于github更新

1
git config --global credential.helper store

创建github token

image-20231030214249991

确认有效时间和访问权限

image-20231030214428991

image-20231102045438891

生成token,这里页面刷新或跳转后无法再看到token,可以提前复制一下留着后面用

image-20231102050100258

创建仓库

github新建一个repositories

image-20231030210535917

仓库名与github用户id一致,后缀为github.io

image-20231102053855177

创建主页

新建一个文件作为网站主页

image-20231102054451043

创建一个index.html并保存,内容随意

image-20231030211714109

本地下载仓库并修改内容同步到github

1
2
3
4
5
6
git clone https://github.com/t0m4too/tomato.github.io.git
cd tomato.github.io
echo "Hello World" > index.html
git add .
git commit -m "Initial commit"
gitpush -u origin main

如果推送更新需要回档,可以通过日志中的commit_id回滚

1
2
3
git log
git reset --hard 获取到的commitid
git push origin HEAD --force

第一次提交会提示需要输入密码,即上面生成的token,由于设置了本地缓存token,后续提交更新就不需要再次输入token了,提交成功后访问https://t0m4too.github.io/

image-20231102054744524

安装Hexo

安装hexo,初始化并启动服务

1
2
3
4
5
npm install -g hexo-cli
hexo init blog
cd blog
npm install
hexo server

启动服务后访问http://ip:4000即可看到初始页面

同步到github

hexo-deployer-git可以从本地快速推送内容到github

1
npm install hexo-deployer-git --save

修改hexo目录下的_config.yml,添加github配置,填入前面生成的token

1
2
3
4
5
6
## github token
deploy:
type: git
repo: https://github.com/t0m4too/t0m4too.github.io.git
branch: main
token: xxx

配置完成后同步到github

1
hexo g -d

此时访问https://t0m4too.github.io/,可以看到成功同步

image-20231102154729020

修改主题

下载主题文件到themes目录,如果无法使用git命令,执行git init即可

1
2
git init
git submodule add https://github.com/zchengsite/hexo-theme-oranges.git themes/oranges

在_config.yml修改主题名

1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: oranges

复制主题文件夹下的_config.yml到blog目录重命名为_config.oranges.yml,可以参考https://github.com/zchengsite/hexo-theme-oranges自定义配置,完成后执行hexo g -d同步即可

配置图片路径

安装插件hexo-renderer-marked

1
npm i hexo-renderer-marked

修改_config.yml配置

1
2
3
4
5
6
7
## 修改post_asset_folder值为true
post_asset_folder: true

## 添加marked配置
marked:
prependRoot: true
postAsset: true

在source目录下创建一个img文件夹,修改typora偏好设置-图像路径../img/${filename}/

image-20231104194758716

绑定自定义域名添加CF加速

准备一个域名,CF添加站点,并修改nameserver为CF给的地址

image-20231105030759641

CF可以成功解析后,添加CNAME和A记录

image-20231105050653979

在本地hexo的source目录创建一个CNAME文件,内容为我们自己的域名,后续更新时该文件会自动同步到代码仓,github识别到CNAME文件中的域名后我们就可以通过这个域名访问github page

image-20231105055259805

代码仓page中的custom domain会自动获取CNAME文件中的域名,生效如下图

image-20231105053112975

修改文章链接格式

默认格式文章链接为年/月/日/标题格式展示,若标题为中文会生成一大堆字符串编码,可以选择通过插件hexo-abbrlink修改文章链接格式

1
npm i hexo-abbrlink --save

修改_config.yml中的permalink