
从Halo2到Next.js的转变
- Published on
从接触 Halo2 到现在决定转向 Next.js,我的心情有些复杂。Halo2 确实有很多优点:开箱即用,自带编辑器,还有社区开发的小插件,都让我在写作时感到非常方便。最近官方对手机 App 的投入也让我觉得这个项目还在不断发展。
然而,每次在 Obsidian 里写完文章,再把它们搬到 Halo 后端时,总会遇到一些小问题。排版细节和图片文字对齐问题需要我借助其他软件去调整。尤其是那个同步到微信公众号的插件,虽然当初花费了很少的钱,期待一键推送,结果只能同步最基础的标题、描述、封面、段落等,排版还是需要我手动调整。这个插件后来也不再更新,让我有些失望。
起初,付费插件可以单独购买,但现在要使用所有好用的功能,就需要订阅专业版——每月 48/每年 480 元,或者一次性买断 1200 元。对于我这样一个只是想写点文字、偶尔分享地图可视化小玩意儿的人来说,这笔费用让我犹豫。
在无数个深夜,我总会想象:如果没有框架的束缚,写作会不会更自由?我会不会更愿意在文章中融入一段坐标转换的小玩意儿,或者突然插入一张动态热力图,甚至让读者能与我的文章实时互动,而不需要去研究插件接口和商城里那些层层叠叠的版本限制?
于是,我开始把目光投向了静谧的 Next.js 世界。那里没有繁重的后台,也没有层层绑定的专业版权限,只有一片干净的代码花园和无限的可能。我可以继续在 Obsidian 里写下心底的文字,再由 Contentlayer 温柔地把它们编译成网页;我可以用 Tailwind 画出属于自己的风格边框;我可以在 API 路由里随手写几行逻辑,让地图在页面上轻轻浮现;我可以把这一切托管到 Vercel,一切看起来都那么自由、那么清澈。
也许有人会说,放弃一个完善的生态是一种冒险。但我觉得,这种冒险恰恰是对写作最好的尊重:因为当文字不再被技术的纷扰牵绊,它才能奔腾得更远;当创作的世界不再被昂贵的订阅墙阻隔,读者和作者才能真正贴得更近。而我,只想在这条由代码和文字交织的小路上,听到自己最真实的声音。
比如,在文章中我可以直接插入一个邮件新闻订阅自定义组件:
再比如,我可以方便地集成各种 JavaScript 图表库。以下是使用 ECharts 的一个更复杂的示例:
或者直接渲染一个地图:
以上示例都来自于Examples - Apache ECharts
也许有人会说,放弃一个成熟的生态是一种冒险。但我认为,这种冒险是对写作的尊重:当文字不再被技术的限制束缚,它才能更好地表达;当创作不再被高昂的订阅费用阻隔,读者和作者才能更亲近。我只想在由代码和文字交织的道路上,找到最真实的声音。