之前在 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
。最后放个 WordPress
与 Halo
的对比吧,根据自己需要选择。
功能 | 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,博客前期完全足够了 |