背景
两年前把个人博客从 WordPress 迁移到 Typecho ,当时的想法是觉得 WordPress 功能太复杂,维护太麻烦,所以就迁移到了相对小型的博客 Typecho,同样也是 PHP 开发的。当时采用了一个很漂亮的 HandSome 主题,但是后面我越来越发现博客的关键在于内容与质量,好不好看应该是其次的,我有点本末倒置了。
所以我打算换一种博客展示形式了
为什么不再是 Typecho?
说一说采用 Typecho 的缺点:
- 由于工作后个人精力的原因,空闲时间并不多,没有很多时间维护服务器,所以需要一种更简单的博客维护方式。
- 目前的 Typecho 博客还放在腾讯云的一台服务器上,这个服务器再过一年多就过期了,而我又不经常更新与维护,导致了目前服务器版本还停留在 Ubuntu16.04,可能会存在很多历史问题,我懒得修
- LAMP 这种动态博客的方式有点陈旧,我还会经常忘记 MySQL 的密码,长此以往,等到服务器快过期的时候一定是一个灾难。
- 我现在觉得博客应该专注于内容,不想搞那么些花里胡哨的东西,需要寻找一种新的博客展示方式。
- 现在静态博客比较流行,也比较流行 Serverless 的概念,我想试试
我的需求
我目前对博客的需求是:
- 简洁:我希望功能与页面都简洁,能突出博客的内容即可,但是也不能太丑。
- 支持完整的 MarkDown 语法与数学公式支持
- 容易维护:我不想花费太多时间在服务器的维护上,也不想整天被黑客盯上,冲着我的网站扫个不停。
- 费用低一点:目前使用的云服务器是腾讯云的学生机,在毕业前我考虑到了毕业后没有学生优惠这件事,一下子买了好几年,但是总会过期的,过期后的 1C1G 的机器,一月好像顶我现在一年的费用,为了维护一个博客,不值得这样。
- 数据存储不希望使用数据库:放在云服务器上的 MySQL,比较危险,万一哪天服务器被黑了,直接给我删库我咋办,可以做一个定时备份,但是这样比较麻烦,使用 Markdown 这种文件存储的方式更好一些。
- 希望通过 Git 进行版本控制:写的多了,就知道版本控制的重要性了。
- 内容可以长时间存在,防止年久失修丢数据,目前来看,GitHub 可以满足这一点。
为什么是 Hugo?
经过我的一番调研,最终落在了 Hexo 和 Hugo 这两个静态页面生成器身上,由于我目前从事 Golang 开发,对 Go 语言比较熟悉,最后就选择 Hugo 了。(听说文章多了 Hexo 渲染的会很慢?)
那说一下 Hugo 的优点:
- Go语言编写,只有一个可执行二进制文件,生成速度极快
- 主题大多都比较简洁,可以突出内容
- 完全是静态博客,没有后端,通过源文件生成HTML文件,杜绝一切黑客攻击,静态页面访问速度也比较快。
- 主题大部分都比较简单,我一个完全不会前端的,折腾折腾折腾也能魔改。。
- 渲染引擎支持完整的 Markdown 语法与数学公式
- 可以 Servless ,静态页面托管在任何地方都比较方便。
- 源代码可以放在 GitHub 上,有版本控制,通过 GitHub Actions 可以实现静态博客自动部署。
- 不需要后端,不需要数据库,维护起来及其方便。
- 省钱,如果使用 GitHub Pages 的方法,则完全可以不要钱,通过各大云服务厂商的静态页面托管,按量付费,也很便宜。比云服务器不知道便宜哪里去了。
折腾
选择了 Hugo 后,我就要挑选一款看的过去的主题,最后选了半天,决定采用 Diary 主题,简单大方。
配置的时候踩了很多坑,我又不会前端,只能拿起来现场魔改,比如自带的归档页面太大了,我改成了列表形式,还有各种微调(大调我也不会啊)
评论系统选了 Valine ,简单好配置。
评论系统目前换成了 twikoo 由于我的博客托管在腾讯云 CloudBase 上,twikoo 恰好使用了 CloudBase 的能力,而且按量付费价格也很便宜,就使用这个了。
最恶心的部分是数据迁移,老的 Typecho 在 MySQL 中,我肯定不能傻傻的手动复制粘贴,于是我花了小一天写了个迁移脚本,基本就是去读DB中的数据,然后序列化成 Hugo 博客需要的形式,再按年份保存。。
最后是部署:
虽然说可以白嫖 GitHub Pages,但是这玩意毕竟在国外,访问速度太慢。于是我采用了腾讯云的静态网站托管,自带 CDN 加速,美滋滋。部署的时候采用 GitHub Actions ,每当我向仓库进行推送,就会博客就会自动部署。
过程中用到的一些链接:
评论系统:
- https://github.com/DesertsP/Valine-Admin
- https://valine.js.org/
- https://www.leancloud.cn/ (ServerLess云服务)
- https://blog.wangjunfeng.com/post/hugo-cloudbase/
- https://twikoo.js.org/
hugo模板开发教程:
- https://hugo.aiaide.com/post/
- https://www.jianshu.com/p/0b9aecff290c
- http://blog.wikty.com/post/hugo-tutorial/
结语
经过一番折腾,我成功了。
目前我的博客链接没变,还是:https://blog.riba2534.cn/
老的 Typecho 链接为:https://blog2.riba2534.cn/(在我的服务器过期前,应该还会放在这,只不过不会更新了)
为了保险起见,我以后的文章应该也会 CSDN 和 这个 Hugo 博客各发一个。
话又说回来,要想简单好维护,为什么不是 CSDN 呢?我也是 CSDN 排名 2000 多的作者,主要是这玩意现在广告太多,低质内容太多,还有审核,我之前的有些文章就被下掉了,说有风险,我也不知道有啥风险。还有就是经常改样式,我很不喜欢…
其实我司的飞书文档是一个好选择,在线编辑,该有的都有,也不用作者自己维护,也有历史操作记录,也很简洁,如果出一个类似博客的东西(类似于现有的飞书知识库?),应该会很受欢迎.
最后修改于 2021-05-21
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。