搭建这个博客我都干了什么

本文最后更新于:2023年10月5日 上午

起因

因为自己折腾代理的时候发现在网络上没有太多的关于shadowrocket🚀的资料,所以自己折腾了一波,想记录一下折腾的结果并且记录下来给有同样需求的人用吧,就自己用GitHub pages 搭了这个基于hexo的博客。

过程

过程其实蛮曲折的,虽然网络上的教程很多,但是要么太老,要么diy的程度太低,大多都是NEXT主题的教程,再加上自己小白的属性,看不懂文档和嫌弃教程太麻烦大概花了将近两天的时间。

我这个博客的实现原理是使用github actions进行自动化搭建的,(虽然hexo deploy也能实现,但是我太懒了,只想每次写完push上去就跑。当然节约下来的时间也没去学习)下面说一下具体的搭建方法和搭建时候的一些坑。

首先在hexo官网找到对应的文档,印象中是要下载“npm”(就是nodejs)和 git,具体安装和配环境就不谈了。然后新建一个文件夹再打开终端,输入

1
hexo init

这时你的文件夹里会出现一堆配置文件,然后有的教程会让你编辑_config.yml 我建议是先把自己喜欢的主题下载下来,再改config。

第一个坑

有的教程会让你以git submodule的形式进行挂载,但是这个并不适用于每一个theme,我的建议是把文件以zip的形式下载下来解压至themes/,我这边直接git clone还是会识别成子模块然后导致一系列后续的错误。
具体的错误成因暂时不清楚,但是如果你也遇到相应的问题或许可以这种方式进行解决。我的猜测是因为hexo文件本身就是git管理的仓库,在git下再进行git可能就自动识别成了子模块

这个时候你已经成功下载了themes,只需要到根目录下的config里theme改为你需要的主题名称就行了。(除此之外,其他的几乎没改,名字啥的还是可以改一下的哈~)这时本地跑一下看一下效果,如果没有问题基本没啥大问题了。

tips:

注意github的默认分支不再是master而是main👀

第二个坑

如果使用官方的deploy工具,他的大致原理就是把你的md文档转成html的文件这样可以访问,他会在你的***.github.io这个仓库内创建两个分支,一个分支是你的源代码分支,另一个分支是gh-pages,把你的gh-pages设为网页展示的分支就可以了。在这里我遇到了本地展示正常但是访问网页时没有themes或者一片空白的情况,当时弄到了很晚准备睡了,第二天准备折腾这个问题并且配置一下github actions进行自动配置。

github actions 的配置需要:

  • 一个private库用来存源码
  • 一个public库即上文的*.github.io
  • 一个workflows的配置文件
  • 一个密钥

接下来所有的操作都在你的源码库进行:
先申请密钥,这个不细说了具体操作请STFW,我这里提醒一下密钥的权限要申请能调用和修改仓库
我自用的workflows配置文件是:

目前是2.0 改良版本,由于github actions的时区应该是UTC时间,如果你的时区与之不符需要调整workflows的时区如下

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
28
29
30
31
32
33
34
name: deploying Hexo project to GitHub pages
on:
push:
branches:
- master # master 分支有 push 行为时就触发这个 action, 更改成你的仓库分支名

env:
TZ: Hongkong # 改成你所在的地区/时区

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Check the current timezone database # 输出时区文件夹
run: |
ls /usr/share/zoneinfo
echo "---"
date
echo "---"

- name: Show the timezone #看看修改成功了没有
run: |
echo "The timezone is $TZ"
date
- name: Checkout
uses: actions/checkout@master

- name: Build and Deploy
uses: theme-keep/hexo-deploy-github-pages-action@master # 使用专门部署 Hexo 到 GitHub pages 的 action
env:
PERSONAL_TOKEN: ${{ secrets.HEXO_DEPLOY }} # secret 名
PUBLISH_REPOSITORY: # 公共仓库,格式:GitHub 用户名/仓库名
BRANCH: gh-pages # 分支,填 gh-pages 就行
PUBLISH_DIR: ./public # 部署 public 目录下的文件

如果你想了解更多关于这个workflows,可以到这个仓库查看

然后折腾完成后,每次写文章只需要push到自己的源码仓库,github actions会监测你的每次push,帮你编译且发布到你的github pages的那个仓库里。

最后

至此,配置完成后,我发现所有问题都消失了,每次只用专心写文章然后push到仓库里就不用管了,属实舒服,这样就有更多的时间折腾别的了。谨以此文记录自己那两天时间,也许也能帮助到其他人呢?


搭建这个博客我都干了什么
https://jackeyzzz12138.github.io/2023/07/11/折腾计-01/
作者
Jackey
发布于
2023年7月11日
许可协议