Hexo建站体验
前情提要
经过几天的调整,这个使用Next主题运行的GitHub Pages上的Hexo系统基本上可以正常运行了。
环境介绍
Hexo是静态blog系统,简单来说就是这东西会先把你写好的东西渲染成html文件,再交给httpd监听。Hexo本质上是一个后台,最终展现出来的效果大量依赖主题和各类第三方模块。
Next是Hexo的一个很著名的主题,在配置文件中内置了大量的功能,让用户可以在尽量少接触代码的情况下完成站点管理。
GitHub Pages给用户提供了一个简单的httd实例,允许用户运行简单的网站。
接下来就简单讨论一下整体建站体验和一些使用细节。
Hexo优缺点
优点
- 静态页面确实快
- 支持很多部署方式
- 文档非常成熟
- 利用GitHub Pages建站可靠性好
- 生态系统不错
缺点
纯粹为工程师服务
不论是github建站、vps上面跑git还是其他部署方式,本地操作-部署-在线运行的模式对于站长来说无异于脱了裤子放屁。
而对于只是想找个环境写写字的用户,这种操作逻辑根本无从下手。
不存在多用户创作
Hexo根本没有考虑多用户,有一些旁门左道的办法可以实现,但是相信我,能看懂怎么做的人都自己建站了。
核心功能缺失
大量对于blog来说非常基础的功能都要依赖第三方的插件或服务,甚至连评论系统都欠奉。
一方面,一个系统引入的外部组件越多,各组件之间的版本兼容关系就越复杂,集成需要的调试也越多,后续需要编写的文档就更多。
另一方面,依赖第三方服务,整个系统的可靠性就会受到更多单点的影响,而且产生的数据也很难集中管理和保护。
没有可视化后台
这是纯粹为工程师设计的结果,没有所见即所得,更没有文章、页面管理的功能,你要做的是版本管理。
重点讨论
评论系统
由于Hexo不存在评论系统,很多外置的评论系统应运而生,这些评论系统分成三个阵营。
GitHub Issues类
这类评论系统,会把所有评论作为issue处理。
这样做的好处是GitHub作为一个可靠的环境,你的评论数据是很难丢失的。
但是很明显,这些系统是依赖GitHub的,同时读者没有办法进行匿名评论。从某个角度说,利用issues存放评论算不算对GitHub的滥用?
无后端类
以valine为代表的无后端类评论系统,虽然提供更强大的功能,但同时会引入更多后端。
以waline为例,官方快速上手文档使用LeanCloud创建数据库,并在Vercel中部署server,最后在Hexo中引入客户端,就这样,一个无后端的东西就给你增加了两个后端和一串html代码。
当然你也可以选择其他的serverless服务或利用vps独立部署,但是这斌不会减少运维成本。
第三方服务
用过blogspot的朋友一定还记得disqus,功能强大,可以更好的管理评论,同时用户很少需要考虑运行状况。
但是这类服务就怕跑路,万一哪天它不干了,你还要考虑系统迁移。
放弃
当然你也可以选择放弃。
放弃这种方式,具有无数据、无后台的巨大优势,适合不打算听别人怎么说的用户。
主题
不仅是视觉效果,Hexo的前端功能全部依赖主题实现,搭配不同主题,Hexo就是完全不同的维护和阅读体验,因此选择主题可能才是一切的开始。
优秀的主题应该具有以下特征:
- 通过配置文件实现快速自定义
- 基于data files进行深度自定义
- 自带常见评论系统集成
- 持续更新
- 文档全面
数据存放
很显然,如果你是在GitHub Pages上部署Hexo,你不应该把媒体文件一并上传到repo里,这不仅是因为容量限制,也是对免费服务的滥用。
因此,如果你的文章中经常用到图片、音频、视频文件,你可能就要找图床、对象存储、视频网站来解决问题了。而这些服务又会引入非常多运维工作量。
小技巧
我有很多电脑怎么办?
把你电脑上的目录同步起来吧,群晖、OneDrive什么的都好,其他电脑上只需要把环境搭好就行了。
当然你也可以选择在每个电脑上搭好环境,把source目录放进另一个branch,每次切换之后做一整套git操作。
相信我,不管用哪一种方法,几次之后,你就不会再想用不同电脑创作了。
注意鉴别文档
不管是Hexo还是对应的主题,不同版本的变化都很大,查询文档的适合一定要注意对应的版本。
你还要小心鉴别作者自己都没搞懂的文档。
很多文档都告诉你,每次写完新文章,要用hexo clean
hexo g
hexo d
完成部署,实际上hexo clean
更多是在主题样式需改后才需要使用。启动服务器命令hexo s
也根本不需要事先静态,这个命令不仅会把source里的东西立刻渲染给你看,还是实时监控source里的更新。
还有一个文档甚至建议在vps上独立部署的hexo直接用nginx反向代理hexo s
的监听端口,一堆静态页面你反代它干啥?你还真打算拿Hexo当动态blog用?
总结
Hexo就像Raspberry Pi,你折腾它的时间一定超过使用的时间。
如果你只是一个想写写字的人,不打算做一个工程师,请立刻绕行,不要再多看一个Hexo的文档。