You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: Mayx的博客分发方案
tags: [Mayx, Github, Gitlab, 分发]
---
无论什么资料,都有保存的价值!<!--more-->
# 起因
在今年年初,[Github封禁了我的博客](/2022/01/04/banned.html)因此我也对Github失去了信任。之前因为信任的关系我几乎不会在其他地方备份我的博客发生了这种事情之后我才明白这并不可靠虽然我有时候会把我的博客整站隔段时间手动下载下来但是这样实时性不高。其实我也不是不会做自动化方案只是因为懒就像这篇文章一样分发我在上个月就已经完成了现在才在这里写文章……
# 方案
去年我在[研究博客平台的时候](/2021/08/15/blog.html)已经调查过很多放静态站的平台了,所以这次进行分发的时候有了之前的经验,也简单了不少。
## 源代码托管平台的选择
因为Github不可信于是我自然想到了用Gitlab来存放博客源代码。虽然吧Gitlab曾经也发生过用户数据丢失的问题不过反正目标也是同时放在Github和Gitlab上总不至于两个一起炸吧。其实最开始我的计划是用Github Actions进行同步不过在我进行调查之后我发现Gitlab功能还是挺强大的它支持对一个Git仓库进行自动的推送和拉取也不需要做过多的配置就只需要配置个地址和令牌就可以还是挺方便的。
在我做完Github与Gitlab双向同步之后我发现Gitlab还挺好用的首先Gitlab有个很棒的地方就是没被墙我有时候写文章的时候不挂梯子用Github真的是非常难受目前依我所感受防火长城会对Github先进行一下TCP RST然后刷新一下让你连上连上之后如果长连接断开或者大概5分钟的样子就再阻断然后再RST一波非常的挑战心态。有时候我写了半天然后点预览结果就阻断等半天还是连不上还要挂梯子能预览的时候就得赶紧提交万一提交的时候再阻断要是没备份就炸了。像Gitlab我就从来没遇到过类似的情况这一点还是很不错的大概是因为Gitlab不是社区而且滥用的人也少所以政府也不太关系吧。
另外就是Web IDE相比Github的VSCode Web IDEGitlab的要轻量很多了也不容易发生卡的情况而且其实Github的VSCode Web IDE也装不了几个插件功能上也没强到哪去。
还有就是翻译明明用Github的中国人/华人挺多的官方就是不出中文界面明明文档都有中文了……Gitlab可能是因为作为一个开源产品i18n做的很好虽然吧英文也不影响我使用但是毕竟作为用户体验的一项Gitlab做的确实更好。
不过其实我觉得Gitlab也许只是表面没那么出名毕竟不是做社区的大多数公司都用的是自建Gitlab托管代码而且很多时候Github其实是在抄Gitlab的虽然最早是Gitlab抄Github比如Actions抄CI/CD还有最近又出的一堆什么代码扫描和检查Gitlab出现的都更早。不过这说着也跑题了这个文章又不是为了专门夸Gitlab的😂。
## 部署平台的选择
源代码平台整完之后就是部署平台了除了Github和Gitlab上自己的Pages上各部署了一份另外我也在Cloudflare Pages和Vercel上面也设置了部署以后我也可能增加更多的部署和备份平台具体目前可以参考[代理列表](/proxylist.html)。
在部署的时候目前我也增加了一些新的东西比如下载全站的按钮原来我是想把源代码和生成后的代码合到一起下载不过没想到Cloudflare Pages竟然不能上传超过25MiB的文件所以没办法我只好光放下载全站的按钮。不过我也有做判断如果是Github生成的代码会放Github的下载链接因为Github Pages生成没办法使用脚本也没法打包全站代码其他部署因为支持的多所以我就写了一个脚本来进行打包一是方便在Wayback Machine保存我的全站代码二是希望能通过这种方式让有兴趣的人帮助我来备份我的博客。
另外为什么是生成后的代码呢因为如果用源代码要考虑很多依赖的项目会不会炸比如Ruby、Jekyll、还有各种插件和模板如果未来的某个时候它们其中有一个炸了那么感兴趣的人就没办法再构建我的博客了。
在此之后也算是激发了我对博客代码修改的灵感比如我改了下博客分页器现在就没那么凌乱使用select标签就更加简洁了。
# 未来的方案
之后我会想办法在Blogger之类的平台整个自动化发布脚本还有就是上链啥的不过上ETH这种公链的成本实在是太高了我要是想把我的博客全部上传到公链上估计得要上百万CNY了吧……而且也没法编辑回头看看能不能整个分布式社区让大家的独立博客互相备份。另外这也是我之后想做的计划的一部分我想整一个开放的匿名解决方案比如整一个“OpenAnonymous”的项目分布式在一定程度上能大幅提高追踪成本其实在社会中就像谣言一样为什么说“造谣一张嘴,辟谣跑断腿”?其实也是因为分布式的特性,对于已经散播的信息很难溯源,也很难制止。
总之希望作为Mayx Forever Project的载体——Mayx的博客能在我有生之年想出合理的方案存在1000年吧
# 补充
刚才在Gitlab上发布了文章之后我不知道Github Pages这里又犯什么神经病没有给我构建所以我又想到了些东西在这里补充一下
Github Pages还有个地方让我比较难受那就是Github Pages的默认域名在有些运营商会被屏蔽我不知道是DNS的问题还是啥总之这样我有时候发文章之后其他人就看不到了所以现在我以后常用的域名也打算改了我目前决定使用 <https://mayx.eu.org> ,好听也好记。
另外还有个比较难受的地方就是我的博客目前用的评论系统是Gitalk这个是依赖Github的之前评论全炸这个我也是非常难受我之后再想想办法改一下评论系统吧。