在野的黄

在野的黄

从WordPress转到Halo

2020-12-08

之前在WordPress上写博客,用着一个叫Adams的极简主题,以及大量好用的插件,一切都是那么美好。知道有一天,我觉得这个主题少了一个点赞的功能,而装上了点赞插件却无法使用,样式还巨丑,于是我决定自己动手开发主题。

我一直都有自己从零开发一个博客主题的想法,而开发什么博客的主题就成了首要考虑的问题。WordPress基于PHP开发,所以想开发WordPress主题就得先学PHP。早就听过“PHP是世界上最好的语言”,二话不说便打开菜鸟教程,学习PHP

谁知PHP巨坑无比,被称为“最好的语言”不是没有道理的。用PHP写主题,需要用<?php ?>把代码包起来,再塞到html里面,整体代码看起来非常混乱,对于有强迫症的人来说,就是一坨*。

特意上网查了PHP的代码规范,几乎没有帮助,甚至发现随意的代码风格是很多人喜欢PHP的理由。最过分的是,PHP中的关键词,也没有一个统一的命名风格,有的大写,有的小写,有的简写,有的全拼。据说早期版本的PHP,作者通过对变量名称进行哈希计算来实现某些功能,所以变量名尽可能的不一致,从而让哈希值更分散。。。

我毅然决然抛弃了WordPress,在我考虑要不要回到静态博客的时候,我发现了Halo这个好家伙。

基于Java,支持markdown,附件可直接上传阿里云OSS,并且默认使用h2数据库!

而我最关心的主题开发,用的是一个叫Freemarker的模板引擎,虽然还不清楚是什么东西,但总比用PHP生写要好。

Halo相当于一个Java应用程序,将其作为服务运行就可以,因为h2数据库是嵌入的,也不需要另外启动数据库服务,整个部署过程还是比较简单的。

服务器也从香港搬回北京了,因为不再使用WordPress了,那些需要连接外网的升级服务也没有了。搬回大陆的服务器还能节省一笔费用。同时还启用了尘封已久的OSS,以后图片都放在上面,再配上CDN,不仅提升访问速度,还能减轻主站服务器的负担。

Halo虽然是小众博客框架,但社区还算活跃,我在GitHub上提交的issue第一时间得到了反馈,开发组现在生在改进编辑器。总之Halo还是很有潜力的。

倒不是说Halo吊打WordPress,只能说各有优劣,我更喜欢Halo。最后放个WordPressHalo的对比吧,根据自己需要选择。

功能

WordPress

Halo

插件扩展

有海量插件,后台插件市场一键安装

没有插件的概念,需要自己开发功能

Markdown

有插件能让WordPress识别markdown,但文章存储形式还是html

支持,解析器为flexmark-java

LaTeX数学公式

有插件

原生支持

文章编辑器

功能比较丰富,有很多小工具可以配合插件使用,自带可插入文章的小相册功能

markdown方式编辑,样式要么依靠主题渲染,要么自己在markdown里写css。目前还没有很好的方法插入相册,只能手写html

图片上传

只能上传到本地,可镜像到OSS,再通过插件替换图片链接为CDN

原生支持本地上传、OSS上传

数据库

MySQL

默认h2,也支持MySQL

SEO配置

有插件,可以做到很复杂的配置

原生支持简单的配置

本地数据统计

有插件,可记录很详细的访客信息

自带记录访问量,没有其它数据

第三方统计

有插件

支持

友链

可通过插件实现,但不怎么好用,还得看主题

支持

性能

够你用了

个人博客完全足够

稳定性

我是用期间没有出现过问题

偶尔服务会重启,可能是因为分配的内存太小,但设置了自动重启服务,所以不需要操作,过一会就好了

配置要求

因为需要开启MySQL服务,所以配置要求比Halo高一丢丢

1核半G的配置,配合OSS+CDN,博客前期完全足够了