你好,HEXO

我滴个亲娘嘞,怎么就开学了啊啊啊啊啊。看着思源里建了文件和标题没写的博客和好几个折腾方向,我只能大喊一声:要命…

为啥换博客?

Emmm,吐槽结束,下面进入正题。

早在很久很久以前,咱就简单介绍过几种常用的博客类型。过了一年…只能说当初还是太年轻了啊。

好吧具体的原因是因为就我这么个破博客还能被打了,不是哥们你有本事就干正事啊,打我这么个站干哈?虽然套了层CF挡了不少,但是还是干了我七八百 g 的流量。然后给我气得啊…当天晚上就换了Hugo,至于为啥现在又成了Hexo,咱后面再说。反正最后的结果是…

再见,Typecho

你好,Hexo

image

image

再说博客

去年咱说了Wordpress,Typecho,Hexo仨博客类型,现在除了这仨,另外再补充下 Hugo ,VitePress,和 Halo 。感觉除了在公众平台写博客或者自己手搓程序的大佬,应该也就这些最常用了吧。当然好像也有用Jekyll什么的搭建的,但是真的见得不多…

WordPress

  • 最多人使用,最开放的社区,最多的主题和插件,最丰富的功能
  • 同时…最恐怖的资源占用

Typecho

  • 用了一年~
  • 主题插件不算少吧,但是大部分停止维护了,能用的不算太多,可能得自己魔改
  • 落后的PHP代码,官方八百年更新一次
  • 至少比WordPress轻量多了

HEXO

  • 在用
  • 基于nodejs,好看的主题不少,插件也不少,方便折腾
  • 生成速度比Hugo慢
  • 纯静态

Hugo

  • 用过
  • 采用Go编写,生成速度比Hexo快
  • 据说因为整这玩意的都是后端大佬的原因,好看的主题比较少
  • 好吧就个人而言好看的其实不少了,但是都是偏向极简风
  • 这玩意其实是站点生成工具,不只是博客
  • 纯静态

Halo

  • 和大名鼎鼎的1panel一家的
  • 搭建简单,插件够用,主题好看,功能强大
  • 部分功能收费

VitePress

  • 静态站点生成
  • 具体没用过不多评价
  • 我只知道很多 Wiki 都是这玩意做的吧,还挺好看

嗯,又过了一遍,为什么选择HEXO也就清晰起来了。纯静态方便托管不需要服务器,套个CF全站缓存加速率限制防打。主题好看且可配置项多,方便魔改折腾。

迁移过程

嗯,因为我用的是Sqlite版本的Typecho,就因为我用的是Sqlite版本的Typecho,导致迁移到Hugo和Hexo的过程都不是那么顺利…

迁移到Hugo

因为最后没用所以不多说,下载启用这个插件,把我用GPT修改后的action.php替代原文件(GPT唯一真神!),然后在控制台导出,最后将解压的 content 文件夹替代Hugo下目录就行

迁移到Hexo

用的是这个工具,不过是只能给 mysql 的 Typecho 用的,所以继续靠gpt魔改吧。

下载这个文件,改一下里面你的数据库路径,然后Python运行就是了,记得安装需要的库。

最后替换掉Hexo的source目录,Hexo三件套一把梭。

HEXO,启动!

提供静态页面托管的服务其实很多,Vercel,Github Page,Cloudflare Page什么的,但我最后还是选了Vercel,主打一个熟悉。

在 Vercel 搭建 Hexo 是非常简单的,最简单的方法,你只需要使用官方模板,啥都不管一直下一步,你就能获得一个Hexo博客。但是…官方模板太老了,最近更新都是两年前(为什么Hugo的模板更新得这么快),导致使用新版的主题和插件时显得各种水土不服,所以在体验一把之后,我毫不犹豫删掉了它。

最后我的方案其实也没啥差,无非本地部署Hexo保证代码最新,Push到 Git 仓库交给 Vercel 构建,在这里稍微记录一下

安装Nodejs

添加储存库

1
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

安装nodejs

1
sudo apt-get install -y nodejs

换源

1
npm config set registry https://registry.npmmirror.com

安装Hexo

先全局安装命令行工具

1
npm install -g hexo-cli

然后初始化

1
2
3
hexo init 文件夹
cd 文件夹
npm i

这时候就会在你设置的文件夹生成一些基础文件,

  • config.yml是网站的配置信息(但是使用主题的话尽量不要在这个文件里瞎折腾,用主题的配置文件)
  • themes装主题
  • source装之前生成的文件,其实也就是一些文章啊什么的
  • package.json 会告诉Vercel需要哪些包
  • node_modules 安装的包,npm方式安装的主题也在这里

然后可以本地启动看看

1
2
3
hexo clean
hexo generate
hexo server

现在访问本地4000端口就行了,本地运行方便后续调试

Push到Github

在项目文件夹打开终端,创建仓库

1
git init

添加文件,Commit,提交

1
2
3
git add --all
git commit -m "这次修改的注释"
git push -u origin

啥?你这时候还没远程仓库?那最后一步先别做了,先去Github创建一个仓库吧,我是设置了私有保证安全性。

然后创建一个ssh密钥

1
2
ssh-keygen

1
2
3
4
5
6
7
8
9
10
下面一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:
The key's randomart image is:

然后就可以正常Push啦

Vercel部署

打开Vercel注册一个账户,直接Github登陆然后绑定邮箱就好,然后进入控制台后点击Add-NEW – Project ,在下面可以导入之前的仓库,导入一键下一步完事,的确太简单了。

PS.由于自带域名被墙,你需要在Domain那添加一个自己的域名

1
cat ~/.ssh/id_rsa.pub

尾声

写博客真是太难了….家人们谁懂啊,一篇博客陆陆续续写了一个星期。其实还有很多优化没写,比如SaaS接入Cloudflare享受防御,全站缓存。换主题,对主题的配置,自建 CSS 样式,装各自插件巴拉巴拉巴拉,不过实在懒了,下一篇博客都已经有雏形了,所有就先留个坑等慢慢填吧