博客迁移至hugo
我的博客又迁移了...

背景

两年前把个人博客从 WordPress 迁移到 Typecho ,当时的想法是觉得 WordPress 功能太复杂,维护太麻烦,所以就迁移到了相对小型的博客 Typecho,同样也是 PHP 开发的。当时采用了一个很漂亮的 HandSome 主题,但是后面我越来越发现博客的关键在于内容与质量,好不好看应该是其次的,我有点本末倒置了。

所以我打算换一种博客展示形式了

为什么不再是 Typecho?

说一说采用 Typecho 的缺点:

  1. 由于工作后个人精力的原因,空闲时间并不多,没有很多时间维护服务器,所以需要一种更简单的博客维护方式。
  2. 目前的 Typecho 博客还放在腾讯云的一台服务器上,这个服务器再过一年多就过期了,而我又不经常更新与维护,导致了目前服务器版本还停留在 Ubuntu16.04,可能会存在很多历史问题,我懒得修
  3. LAMP 这种动态博客的方式有点陈旧,我还会经常忘记 MySQL 的密码,长此以往,等到服务器快过期的时候一定是一个灾难。
  4. 我现在觉得博客应该专注于内容,不想搞那么些花里胡哨的东西,需要寻找一种新的博客展示方式。
  5. 现在静态博客比较流行,也比较流行 Serverless 的概念,我想试试

我的需求

我目前对博客的需求是:

  1. 简洁:我希望功能与页面都简洁,能突出博客的内容即可,但是也不能太丑。
  2. 支持完整的 MarkDown 语法与数学公式支持
  3. 容易维护:我不想花费太多时间在服务器的维护上,也不想整天被黑客盯上,冲着我的网站扫个不停。
  4. 费用低一点:目前使用的云服务器是腾讯云的学生机,在毕业前我考虑到了毕业后没有学生优惠这件事,一下子买了好几年,但是总会过期的,过期后的 1C1G 的机器,一月好像顶我现在一年的费用,为了维护一个博客,不值得这样。
  5. 数据存储不希望使用数据库:放在云服务器上的 MySQL,比较危险,万一哪天服务器被黑了,直接给我删库我咋办,可以做一个定时备份,但是这样比较麻烦,使用 Markdown 这种文件存储的方式更好一些。
  6. 希望通过 Git 进行版本控制:写的多了,就知道版本控制的重要性了。
  7. 内容可以长时间存在,防止年久失修丢数据,目前来看,GitHub 可以满足这一点。

为什么是 Hugo?

经过我的一番调研,最终落在了 Hexo 和 Hugo 这两个静态页面生成器身上,由于我目前从事 Golang 开发,对 Go 语言比较熟悉,最后就选择 Hugo 了。(听说文章多了 Hexo 渲染的会很慢?)

那说一下 Hugo 的优点:

  1. Go语言编写,只有一个可执行二进制文件,生成速度极快
  2. 主题大多都比较简洁,可以突出内容
  3. 完全是静态博客,没有后端,通过源文件生成HTML文件,杜绝一切黑客攻击,静态页面访问速度也比较快。
  4. 主题大部分都比较简单,我一个完全不会前端的,折腾折腾折腾也能魔改。。
  5. 渲染引擎支持完整的 Markdown 语法与数学公式
  6. 可以 Servless ,静态页面托管在任何地方都比较方便。
  7. 源代码可以放在 GitHub 上,有版本控制,通过 GitHub Actions 可以实现静态博客自动部署。
  8. 不需要后端,不需要数据库,维护起来及其方便。
  9. 省钱,如果使用 GitHub Pages 的方法,则完全可以不要钱,通过各大云服务厂商的静态页面托管,按量付费,也很便宜。比云服务器不知道便宜哪里去了。

折腾

选择了 Hugo 后,我就要挑选一款看的过去的主题,最后选了半天,决定采用 Diary 主题,简单大方。

配置的时候踩了很多坑,我又不会前端,只能拿起来现场魔改,比如自带的归档页面太大了,我改成了列表形式,还有各种微调(大调我也不会啊

评论系统选了 Valine ,简单好配置。

评论系统目前换成了 twikoo 由于我的博客托管在腾讯云 CloudBase 上,twikoo 恰好使用了 CloudBase 的能力,而且按量付费价格也很便宜,就使用这个了。

最恶心的部分是数据迁移,老的 Typecho 在 MySQL 中,我肯定不能傻傻的手动复制粘贴,于是我花了小一天写了个迁移脚本,基本就是去读DB中的数据,然后序列化成 Hugo 博客需要的形式,再按年份保存。。

最后是部署:

虽然说可以白嫖 GitHub Pages,但是这玩意毕竟在国外,访问速度太慢。于是我采用了腾讯云的静态网站托管,自带 CDN 加速,美滋滋。部署的时候采用 GitHub Actions ,每当我向仓库进行推送,就会博客就会自动部署。

过程中用到的一些链接:

评论系统:

hugo模板开发教程:

结语

经过一番折腾,我成功了。

目前我的博客链接没变,还是:https://blog.riba2534.cn/

老的 Typecho 链接为:https://blog2.riba2534.cn/(在我的服务器过期前,应该还会放在这,只不过不会更新了)

为了保险起见,我以后的文章应该也会 CSDN 和 这个 Hugo 博客各发一个。

话又说回来,要想简单好维护,为什么不是 CSDN 呢?我也是 CSDN 排名 2000 多的作者,主要是这玩意现在广告太多,低质内容太多,还有审核,我之前的有些文章就被下掉了,说有风险,我也不知道有啥风险。还有就是经常改样式,我很不喜欢…

其实我司的飞书文档是一个好选择,在线编辑,该有的都有,也不用作者自己维护,也有历史操作记录,也很简洁,如果出一个类似博客的东西(类似于现有的飞书知识库?),应该会很受欢迎.


最后修改于 2021-05-21

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。