最近体验了一款新的开源建站工具 Halo,无论是在功能还是颜值上,Halo 都满足了我独立建站的需求。于是,在体验了一把之后,我就直接用它替换了我原来的博客系统,折腾了一番之后,目前已正常使用。

下面是我的折腾过程。

安装部署

安装部署这部分 Halo 的官方文档写得很详细,而且提供了多种安装方式,对于使用者来说非常友好,只要选择自己熟悉的安装方式按照步骤操作即可。

具体可以参考官方安装指南

halo-1.png

由于我原先站点的数据库,Nginx,Docker 等基础服务都是现成的,因此我就选择了 Docker Compose 的安装方式,只需要把官方提供的 docker-compose.yaml 文件按照本地的实际情况修改下参数然后执行,再等个几分钟就能把站点搭建好。

两个问题

搭建好站点之后,碰到了两个问题。一是系统自带的编辑器不支持 Markdown,二是文章页面不支持代码块的语法高亮。这两个功能对于普通写作者来说可能无所谓,但是对于我这种技术写作者来说是刚需。

不过好在 Halo 采用的是可插拔架构,这两个问题可以通过安装插件的方式解决。

Markdown 编辑器支持

Halo 以插件的方式支持了两款 Markdown 编辑器,一款是 StackEdit,另一款是 ByteMD。这两款都是免费插件,可以直接安装。

以我目前的使用体验来说,这两款 Markdown 编辑器功能上差别不大,除了 StackEdit 的预览界面支持代码块的语法高亮,ByteMD 不支持以外基本没区别,而且因为 Halo 的文章编辑页面本身就支持文章预览,所以这也不是什么严重的问题。

代码块语法高亮支持

Halo 的代码块语法高亮功能支持使用的是 highlight.js 代码高亮 这款插件。这款插件默认支持了常见的一些语法高亮,例如:php,java,json 等,其他不支持的可以自行在设置界面添加,目前我需要使用的语法高亮都支持。

halo-2.png

访问统计

站点访问情况的统计我使用的是百度统计,只需把百度统计提供的一段 JS 代码插入到需要统计的页面头部即可,Halo 也提供了相关配置的功能。

halo-3.png

数据安全

目前我对于 Halo 的数据存储方式还未深入了解,不过 Halo 本身提供了备份/恢复功能,可以在系统崩溃之后用作数据恢复,只要定期手动执行下备份就可以了。

halo-4.png

但是,手动备份毕竟还是不够方便,后续我应该会做一个定期自动化备份的功能。如果大家有兴趣的话,以后我再跟大家分享。

写在最后

很多人可能不能理解为什么要搭建自己的独立博客站点,明明有很多现成的平台可以使用?

对于我来说,一个完全独立可控的博客站点意味着安全感,自己可以任意折腾,不用受制于人,进可攻、退可守。平台会有兴衰,自己的站点,只要自己想,可以一直存在。同时,自己独立搭建、运营一个站点的成就感也是直接使用其他平台无法获得的。