前言
一年过去了,又有时间可以来升级博客框架了。但是一年肯定要比一年进步的。所以这次升级也花了不少精力,为以后快速升级铺垫道路。
再看去年的博客,发现NexT主题又换仓库了。这次仓库是next-theme
。旧仓库只有V7的最后一个版本。
现在可以拥抱V8版本了,现在已经是V8.0.2。整个主题已经趋近成熟,因此没有太多的变化。
踩坑
这次才知道上次的hexo升级根本没成功,还在用3.X的版本,npm安装会在目录下生成一个package.json
文件。要修改这个文件中的版本依赖,才会安装上最新版本的hexo。
升级完成之后,发现主题挂了,看来要连带升级主题才行。
比以前进步的是,这次我希望将配置分离做了。自从认真研读了Clash文档,感叹这才是现代程序应该有的样子。配置程序分离,配置尽可能的简单。配置中的内容可复用,从网络直接拉取配置文件,将自己不大关心的配置文件修改外包出去。这样配置内容就非常精简了。程序也使用Docker容器打包,加多一条配置指定版本的docker-compose.yml
就OK了。
从NexT的官网文档得知,目前的主题配置文件分离方案,是在站点配置文件目录下创建_config.next.yml
,文件默认会以覆盖写的方式加载到之前的主题中,这就很像Linux中的overlay了,这样可以做到读写分离。包括语言文件,也可以通过这种方式来改写。
所以整个迁移过程异常的顺利,为了减少对NexT主题的修改,所以这次就不改NexT源代码了。毕竟改源代码在维护,太累人了。
当然现在阿里云的OSS已经支持静态网站了,甚至还有全球CDN加速功能。真香!
也同上次一样升级之后发现,语法高亮挂了,因为以前我没有在Markdown代码中填写代码语言的习惯。而自动语法高亮功能貌似不能用了。所以回头把所有博客的代码语言给加了上去。顺便发现现在写的代码少了,写的配置倒是多了。
来自主题作者的踩坑
升级框架前必读,不然不知道又会挂了些什么功能。
【必读】更新说明及常见问题
Github Action
这次顺便也把之前的Travis CI给换下来了,毕竟Github亲生的,肯定要比第三方要香。而且发现Github Action挺好用的,充分做好了代码复用。
下面是Github Action,当blog分支有push的时候自动部署博客到同仓库的Github Pages并上传到阿里云OSS,配置文件代码。
.github/workflows/deploy.yml1 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| name: Hexo Deploy
on: push: branches: - blog
jobs: build: runs-on: ubuntu-18.04
steps: - name: Setup timezone uses: zcong1993/setup-timezone@master with: timezone: Asia/Shanghai - name: Checkout source uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: '12'
- name: Setup Hexo env: ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_PRI }} run: | mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.email "<email>" git config --global user.name "<username>" npm install hexo-cli -g npm install rm -rf node_modules && npm install --force - name: Deploy run: | hexo clean hexo g hexo d - name: Setup ossutil uses: manyuanrong/setup-ossutil@v2.0 with: endpoint: "oss-cn-hongkong.aliyuncs.com" access-key-id: ${{ secrets.ACCESS_KEY_ID }} access-key-secret: ${{ secrets.ACCESS_KEY_SECRET }} - name: Deply To OSS run: | ossutil rm -rf oss://<bucket>/ ossutil cp -rf public oss://<bucket>/
- name: Sending message uses: yakumioto/serverchan-action@v1 with: key: ${{ secrets.sckey }} text: 博客部署成功 desp: 博客部署成功
|
功能变更
- 删除了文章中底部的知识共享许可协议
- 删除了花里胡哨的动画功能
- 去除了页面变宽以及文章半透明效果
- 增添了豆瓣观影 阅读功能显示
- 个人社交页仅显示图标
- 修改高亮配色
参考链接
Hexo博客中加入豆瓣读书功能
Hexo 搭建个人博客系列:写作技巧篇