hexo、wordpress、halo和typecho的使用体验
补档,原帖发于2021/06/02。各博客框架使用体验。
文章发布时间较为久远,内容可能与当下不符,请仔细甄别。
前言
前两天薅到了一台阿里国内的ecs主机,1核2G,带宽1-5M。这是我的第一台云主机,到手改了改端口,加了点账户限制就拿来用了。思来想去怎么利用它,思想贫瘠的我只能想到搭博客,干脆把部署在GitHub的博客迁移到服务器上。
之前只用过hexo。hexo修改和发布文章多有不便,而且托管到github上速度比较慢。自然想换个其它框架的动态博客试试。没用过,因此干脆每种博客应用都试一试。包括wordpress,typecho以及最后的halo。
为了不出岔子,先在虚拟机里把过程实现了一遍,留了一些截图,接下来我会浅聊下每个应用的特色。
Hexo
首先是hexo,很流行的静态博客框架了。纯静态,基于node.js,有非常丰富的插件和主题,生态丰富。使用生成器将目录下的md生成为html,可很方便地部署在github,coding等托管平台,零成本。
hexo从博客根目录下的yaml文件中读取用户的配置文件,假如你设置了第三方主题,主题文件包下还有一份主题的yaml配置文件。设置项手动填写,可扩展性极佳。github上有大量的主题可供下载,主题质量普遍精美。
hexo的文章原生支持代码高亮,文章目录也可很方便地通过插件生成嵌入在文章页面里。因为是纯静态,对服务器资源占用低且安全。
这里推荐几个主题,主题预览在项目附属的链接里就能打开。当然你想找其它精美主题也能很容易找到,毕竟hexo好主题太多了:
icarus: https://github.com/ppoffice/hexo-theme-icarus
next: https://github.com/next-theme/hexo-theme-next
插件自己寻找安装即可。大多数时候主题自身集成的插件就已经够用了。
缺点
缺点是麻烦,因为纯静态,文章发表麻烦,后期修改也麻烦,每次修改都要重新生成所有文件;上传附件麻烦,放到文件夹里无疑导致部署文件过大,需要另找对象储存服务托管。虽然typora+picgo可一键推送图片到云,但也是小问题不断(说到picgo,我下一篇文章会提一下picgo配置阿里云oss的注意事项)。将hexo的博文推到服务器上托管时,可以在服务器配置钩子检测推送并即时更新,但归根结底,还是挺麻烦的。
麻烦可能是hexo唯一的缺点了,因此很多时候一些即时小记录我就懒得发表了,要写文章也是恨不得写满10000字再发表,压根不想new出来一篇文章后,核对标签,核对分类,hexo s然后在md编辑器和网页来来回回修修改改。
Wordpress
鼎鼎大名的老牌博客框架,后端是php+mysql,需要lamp或lnmp四件套。
安装环境时注意一下mysql的安装,centos7之后已经用开源分支MariaDB把mysql顶掉了(其实使用方法都一样),自己选择安装合适的数据库。建议mysql 5.7+。
主题、插件非常丰富,功能完善,seo,评论过滤等该有的都有。由于扩展太多,主题可能良莠不齐,插件也许会互相冲突,因此需要挑选。需要注意Wordpress原生不支持代码高亮,但可以插件实现。
说到代码高亮,目前最有名的代码高亮实现无外乎引入highlight.js或prime.js。个人偏好highlight的风格。你可以在这里选择生成你想要的代码高亮js文件并引入到自己的网站中:
highlightjs:https://highlightjs.org/download/
觉得过于麻烦则可以自行寻找插件实现。
wordpress官方插件下载地址:https://wordpress.org/plugins/
我初步使用采用的一些插件:
md编辑器(自行选择):https://wordpress.org/plugins/wp-editormd/
又一个md编辑器:https://wordpress.org/plugins/wp-githuber-md/
图片放大:https://wordpress.org/plugins/simple-lightbox/
移除谷歌字体:https://wordpress.org/plugins/disable-remove-google-fonts/
管理集成:https://wordpress.org/plugins/all-in-one-wp-migration/
安全集成:https://wordpress.org/plugins/all-in-one-wp-security-and-firewall/
站内类似文章关联:https://wordpress.org/plugins/contextual-related-posts/
清理加速:https://wordpress.org/plugins/wp-fastest-cache/
谷歌站点地图生成:https://wordpress.org/plugins/www-xml-sitemap-generator-org/
然后是主题。个人尝试的主题不多,但至少检测下来这两款还可以:
缺点
于我而言,wp的缺点一是后台不符合使用习惯,感觉设置项乱得和gnome3一样(doge),二是WordPress自身定位似乎不仅仅是博客,于bloger而言,WordPress后台乱七八糟的功能已经近乎臃肿了,再装一装插件,后台管理卡得不行,虚拟机里都觉得卡,(我把虚拟机性能设置比云服务器略好)。总之就是卡卡卡,卡到让人暴躁,结果wordpress的功能没测完就被我怒删了。
Typecho
常见的国产博客框架,后端php,对标wordpress,也是需要lamp或lnmp。于wp不同,typecho走的轻量路线。
虽然typecho不支持代码高亮,但主题、插件开放丰富,已经形成了不错的生态,通过扩展完全可以满足需求。另外,部分插件非常好用,例如md编辑器文本高亮,给网页以近乎本地md编辑器的体验:
同时,你也可以发现typecho的插件不仅仅能修改前台主题样式,还可以修改后台功能,例如修改md编辑器(当然这一点wordpress也能做到)。
因此,当然也就诞生了后台主题,例如fresh:
fresh项目地址:https://github.com/Daboias/Fresh
fresh项目没有一个明确的安装教程,这里引用另一位博主小灯泡的文章:
fresh如何安装:https://www.dpaoz.com/680
灯泡哥对主题略有修改,提供了自己版本的下载方式,原版和修改版随你选择。我实装了一下修改版的,不过忘了截图了,盗两张图:
后台确实是更漂亮了,但是操作逻辑改了很多,一些设置项改得不习惯了,这一点见仁见智吧。
typecho的评论区。
评论区常见的人机验证、词汇过滤功能,typecho可以很轻易地实现。
修改主题源码实现附件登陆可见:https://pangsuan.com/p/typecho-forlogin.html
修改主题源码实现附件回复可见:https://ipenguin.top/Study/12.html
此外,typecho提倡多人合作,对游客提供注册功能(可选),注册的用户有权编写发布自己的文章。有大佬基于此写了论坛向的主题OneCircle:
OneCircle项目地址:https://github.com/gogobody/onecircle
如图,游客可以注册并登陆,随意发帖并加入社交圈子,回复聊天关注其它用户,基本的查看个人动态等等,功能已经和社区差不多了。
说了这么多,我很多都是只试试,没有打算正式启用。下面我说说自己实际采用的插件或者主题。
typecho虽然主题多多,但是大多数主题没有目录树,或者目录树和文章标题没有互相锚点绑定,以至于文章看完了,目录进度还是指向标题(多次提到目录树,因为我多写长文,快捷跳转是刚需)。此外,typecho的代码高亮插件中,效果让人满意的不多。
为此,我从github star数较高的20多款主题里精心挑选了4款主题,美观的同时功能丰富,较好地解决了上面所述问题。推荐使用,避免踩雷:
icarus for tyecho: https://github.com/keroliang/typecho-theme-icarus
注意看项目的安装说明:安装说明
cactus for tyecho: https://github.com/Seevil/cactus
(这款主题只支持暗色,而且目录树所有节点都在h1层,但主题风格很有特色)
然后是插件,我确定下来使用的插件有:
typecho的插件来源比较零散,这是这些插件的下载链接。部分链接是直链,这些插件放在typecho-fans/plugins的releases里,和其它插件混在一起不太好找,故而直接把直链贴出来:
CodeMirror 直链:主题代码在线高亮编辑器
CodeStyle 直链:可堪一用的highlightJS高亮插件,请关闭行号
EditorMD:MD编辑器高亮
GeeTest 直链:评论回复,滑块人机验证
HelloWorld:tyecho自带没啥用后台显示字符串
Menu Tree:显示一个目录按钮,点击查看目录树
Qplayer:悬浮音乐播放器,样式可能被一些主题的样式覆盖
Sitemap 直链:谷歌站点地图生成器
SmartSpam:评论过滤规则设置
后续补充几个截图里没有的:
HideTool:插件实现,文章内容回复可见
Baidu TextCensor:评论词汇通过百度审核标准
Tp2MD:导出typecho文章内容为MD
其它插件可见:
最后,写了这么多,如果觉得以上这些东西安装麻烦且不差钱,可-¥88购买以下两款质感极佳、功能丰富的主题,俩集成了很多插件的功能,省事且好用:
handsome:https://www.ihewro.com/archives/489/
这两款主题原创于typecho,质量能打十个。
缺点
由于typecho走的轻质路线,整个博客后台莫名给人质感很糙的感觉,(页面切换没有动画过渡,且对第三方功能启用缺乏足够的检查,配置项主题和插件易冲突,造成50X错误)。这大概也是插件多的坏处了吧,兼容性是个很难解决的问题。
还有一点是我目前没学过PHP,看着typecho代码两眼发懵。无法整活,甚是遗憾。
接着我遇到了基于java后端的halo。
Halo
找主题时发现的一个国产博客框架,基于JAVA。开发使用vue+spring boot框架,前后台体验丝滑得让人感动。功能上就是比较纯粹的博客程序,原生实现目录树,支持seo,自定义图床设置,smtp邮件回复评论等等。主题安装非常简单,后台拖进去即可,类似chrome装扩展。主题较少但质量极高,放到typecho里又是一个$88。
halo本身提供的可定制性功能已经满足绝大多数要求了,作为一款纯粹的博客程序而言完全足够。另若要深度定制,JAVA玩家可改主题源码。
在线修改主题源码(可能导致主题更新失败):
写文章时可惜md没有语法高亮:
值得说道的是halo的部署。halo环境要求java JRE 11+,程序本身是一个jar包,内置了h2小型数据库,也可外连mysql(要求mysql 5.7+),与常见的JAVA项目部署上线别无二致。halo本身只要一个jvm环境就能跑,数据(数据库)和程序(halo.jar)互相独立,便于管理。网站具体上线还需一个支持端口转发功能的服务,如nginx反代port 80请求到port 8090应答。
为了方便部署,官方提供docker镜像。另外也提供了博客数据迁移的功能。
我试着将hexo的博文转到halo,大部分categories和tags都能还原,很不错。
在短暂的体验过程中,halo自始至终都很稳定没出现过50X。随意的安装卸载主题,修改设置,并不会影响博客应用的稳定。halo还内置了很多不错的功能,我会在下一篇文章中仔细说明。
缺点
halo不支持额外安装第三方插件功能,也就是说,扩展功能完全由主题提供,对于不懂JAVA的玩家无疑定制性不高。假如有傻子在你的博客下刷广告,你可能需要自己写个类,给博客加入人机认证或IP黑名单功能。
另外,halo的用户群体并不算庞大,生态是不如以上三者的。诚然官方已经考虑很周全了,但显然没有社区的鬼点子多,例如md主题编辑器高亮这种功能恐怕只有广大热心网友才能想得到了。halo的主题设置仅仅涉及前台。定制的方便性也不如前三者,像更改md编辑器这种需求,wordPress或typecho装一个插件就搞定了(当然你可以自己摸清主题开发自用)。
所以有评价道:halo是一款更纯粹的博客程序,少了很多折腾事儿。
问:我typora写了这么多篇幅,为什么最后选择使用halo?
答:玩了两天主题和插件,最终typecho数据库被玩坏了,懒得修了,删库跑路,笑。