本站点实现的工作流:
本地
source/_posts/
下编写 .md 文章,git push
到站点私有源码库私有源码库的 githubActions 被触发,站点源码被自动编译部署至 pages 服务库
注意:避免直接在 github 平台上操作站点源码库 !
准备工作
构建站点源码
1 | npm install hexo-cli -g |
本地预览站点
1 | cd blog |
配置站点主题
安装依赖包
1 | npm i hexo-generator-feed --save # RSS |
手动编译部署站点(以 github 用户名 brannua 为例)
github 上新建 2 个仓库
blog(私有库,用于存储站点源码)
brannua.github.io(开源库,用于存储站点的编译产物,且提供 pages 服务)
- 本地编辑 blog/_config.yml,写入下述配置
1 | deploy: |
- 手动编译站点源码并将编译产物部署至 brannua.github.io,默认 master 分支(部署需要一盏茶的时间)
1 | hexo clean # 清除旧的静态站点 |
- 站点线上预览地址:https://brannua.github.io
配置 CI/CD 自动编译部署流程
- 首先将站点源码推送到 github 仓库 blog,默认 master 分支
1 | git init |
- 然后打通云端的两仓库(源码库和部署库使用 ssh 加密通信)
1 | # 首先在本地生成非对称加解密密钥对 |
- 实现站点的自动编译部署
1 | cd blog/.github |
自定义域名
域名购买地址:阿里云
注册,登陆,点击进入右上角的控制台,顶部搜索框中搜索 「域名」
跳转到新页面后,点击 「域名注册」,就会跳转到如下页面,在搜索框中搜索你想要的域名,点击「查域名」 !
如果显示域名被注册了,不好意思,那你就得换个域名
关于我为什么注册了个
.top
后缀的域名,因为当时我发现有如下这么个活动,1 块钱购入了个一年使用期的域名
选择好域名,将其加入购物车,结算付款
你需要创建相关的信息模板,设置一个有效的邮箱(会要求邮箱验证),还需要进行实名认证(一定要通过认证呀 !)
对域名进行解析 => 我们要添加两条记录
- 得到这两条记录即可
1 | cd blog/source/ |
在 CNAME 文件中填入你的域名,然后直接 push 就好啦
如果发现下图“Domain’s DNS record could not be retrieved”,说明你的域名解析还没生效,需要睡个午觉,醒来后清空浏览器缓存,刷新页面就好了
文章加密
解密后文章目录不显示
这是因为post.content
被加密处理了,默认的 TOC 生成逻辑获取到的就是加密处理后的字符串,显然就无法生成目录
处理方式:在加密之前将文章内容存个备份,比如存到post.origin
中,让 TOC 可以从备份获取到未被加密处理的文章,进而可以顺利生成 TOC
只需编辑 themes/next/layout/_macro/sidebar.swig 文件,将其中的一段代码修改为如下
1 | {%- if display_toc %} |
参考了:https://www.itfanr.cc/2021/04/16/hexo-blog-article-encryption/
(完)