之前在```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](https://github.com/vsch/flexmark-java)|
|LaTeX数学公式|有插件|原生支持|
|文章编辑器|功能比较丰富,有很多小工具可以配合插件使用,自带可插入文章的小相册功能|markdown方式编辑,样式要么依靠主题渲染,要么自己在markdown里写css。目前还没有很好的方法插入相册,只能手写html|
|图片上传|只能上传到本地,可镜像到OSS,再通过插件替换图片链接为CDN|原生支持本地上传、OSS上传|
|数据库|MySQL|默认h2,也支持MySQL|
|SEO配置|有插件,可以做到很复杂的配置|原生支持简单的配置|
|本地数据统计|有插件,可记录很详细的访客信息|自带记录访问量,没有其它数据|
|第三方统计|有插件|支持|
|友链|可通过插件实现,但不怎么好用,还得看主题|支持|
|性能|够你用了|个人博客完全足够|
|稳定性|我是用期间没有出现过问题|偶尔服务会重启,可能是因为分配的内存太小,但设置了自动重启服务,所以不需要操作,过一会就好了|
|配置要求|因为需要开启MySQL服务,所以配置要求比Halo高一丢丢|1核半G的配置,配合OSS+CDN,博客前期完全足够了|

博客又搬迁:从WordPress转到Halo