前言

概述

两种部署方式

主题选择

搭建过程中接触过的几个主题:

字体选择

知识要点

搭建前的准备

小白版方案

Github Pages 官网介绍搭建的 Tutorial + Hexo 官网参考手册在 Github Pages 上的一键部署方案(hexo init && hexo clean && hexo generate && hexo server 后在 默认的 localhost:4000 上查看本地未部署的静态页面的解析效果,这个效果和最终发布在 Github Pages上联网访问的效果是一致的)

最初做法

最初我的方法是这样的,这也是网上大多数教程的方法:hexo 框架生成渲染后的静态页面,将此页面通过 hexo 提供的命令hexo deploy 一键部署到 Github Pages 个人主页:zhuoqun-chen.github.io 上,并且修改 setting,使得 https://zhuoqun-chen.github.io/ 可以使用新的域名 https://zqchen.me/,接下来在 DNS解析 那里添加1个 CNAME 记录(zqchen.me --> zhuoqun-chen.github.io)和4个A记录(zqchen --> 185.162.118.10),就可以了。(参考资料:配置 GitHub Pages 站点的自定义域

改进做法

后来我觉得把博客直接搭建在 https://zhuoqun-chen.github.io/ 下有点不妥,因为我想留着这个域名以后发布一些简历或者个人介绍什么的,那么就想把博客项目单独新建一个仓库 zqchen.me,在这个仓库里设置 main 分支为 Github Page。

事实上,Github Pages 服务分为两种:

  1. 个人 或 组织及企业 账户的主页
  2. 每个项目的展示页面,也即每个仓库的展示页面

Github 给每个账号提供的域名就是 username.github.io,情况1就要求用户新建一个仓库名必须是 username.github.io,这个仓库建好后在 setting 里开启 Github Pages 服务,默认的域名就是 https://username.github.io

对于情况2,仓库名可以随便起,但是设定该仓库的某个分支为 Github Pages 后,默认的域名是 https://username.github.io/repo/

Github 还要求对项目仓库自定义域名时必须在 CNAME记录中 让域名指向 username.github.io,而不能是 username.github.io/repo, 同时要在setting里面写入自定义域名,假如这个域名被别人的仓库给写到他的setting里了,Github就不允许你写入你的setting里了(这是一个坑~ 在GitHub Pages 官方文档里有写到)

缺点及弊端

进阶版方案

在参考了很多教程,对这一套流程都很熟悉了之后,我采取了 journey-ad 大佬现在的这个方案:生成站点内容的源文件 同 站点文件本身分离,分别来维护,后者的生成并上传采用的是 Github Actions 服务。

方案架构

具体实施

方案优势

缺点及弊端

但是这个方案有一个缺点,就是单独更新 main 分支但更新的内容并不是 markdown 文章,例如只是更新一下 README.md,commit 并 push 之后仍然会启动 actions 工作流重新生成一次同样的站点文件,虽然说由于前后的 public 文件夹一模一样,执行peaceiris/actions-gh-pages@v3 后并不会把虚拟机上的 public 覆写到 gh-pages 分支上,但这样做依然会浪费远端虚拟机的一些资源。(当然对于使用者的我们而言还是很方便的b( ̄▽ ̄)d)

结语

欢迎到俺の小屋观光 []( ̄▽ ̄)*

用到的 Git 命令

用到的Github Actions

github_token 权限的设置以及把 token 添加到某个仓库中

一些新玩意儿

NSFW网站(逃)

图标网站

参考来源

官方参考

大佬的博客

Hexo 部署方案

Git 命令 / Github Pages / Github Actions

JS / Node.js

npm

HTML

Linux

Hexo博客基础配置

常见问题

主题和字体

个性化及性能优化