因为在自己的服务器搭了k3s集群,原本跑在服务器上的nginx让位于traefikservice load balancer,对服务器的本地文件进行代理变成了一件有点麻烦的事情……而且原本写博客的方案是在服务器上进行md文件的管理和静态页面的生成,实际上并不是很方便……这两个因素促使我转向github pages + github.dev的写作方式

原来的方案

在服务器上安装npm,hexo等,然后直接用hexo server -p 8080起一个本地的服务,再用nginx把80和443端口的流量代理代理到这个服务
好处是hexo会在文件有更改时立即重新编译,只需要管理自己的.md文件即可
坏处也很明显——自己的主机莫名其妙就少了一个可用端口,代理服务套了两层,并且因为服务器本身配置比较低,加载网页的时间相当长……
所以就决定把它扬了

现在的方案

其实就是github pages,hexo上有文档
在 GitHub Pages 上部署 Hexo
基本原理就是用github上的资源来代替本地的hexo generate
传上去之后博客非常顺利地可以访问了,但现在有两个问题:主题怎么改?要怎么优雅地更新博客?

主题问题

如你所见,这个博客用的是butterfly主题;按照官方的文档,我们应该将butterfly的仓库clone到HEXO仓库的theme/butterfly文件夹中,然后用hexo generate以及hexo deploy部署;但是hexo deploy还需要额外设置_config.yml里的deploy字段,并且还是需要本地构建,感觉非常麻烦……
于是我就尝试直接将themes/btterfly加入到git仓库中,然后报错了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
warning: adding embedded git repository: themes/butterfly
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> themes/butterfly
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached themes/butterfly
hint:
hint: See "git help submodule" for more information.

似乎可以用submodule解决,但是我懒,最后还是用了最直接的方法:删除themes/butterfly/.git
然后就没问题啦

写作问题

一开始写博客还要手动搬运.md文件,感觉完全没有写作欲望……现在可以用git来管理博客内容了,自然是更加方便,但是还是需要一台有git环境的电脑。
然后我想起来好像有github.dev这种东西,它是github提供的一个在线编辑器,可以在线对仓库进行commit等操作(事实上,这篇文章就是在github.dev上写的)
只要把自己的仓库地址的主机名(github.com)更改成github.dev就可以进入云编辑器啦,它的界面布局和本地的vscode几乎一致,并且带有git等插件,非常方便

完成后直接对仓库提PR或者直接commit就好啦