Hexo Lite Editor 开发日记

准确地说,这并不是一篇严格意义上的开发日记。

这个项目中,我使用得更多的其实是 Vibe Coding。感谢 Codex 的大力支持,也感谢 Claude Code 帮我完成了不少布局审查,才让这个项目能够比较稳地落地。

所以这篇文章除了记录 Hexo Lite Editor 的开发过程,也想顺便分享一下我这次 Vibe Coding 过程中踩过的坑、学到的东西,以及一些可能有用的小技巧。🚀

本来只是觉得写博客太麻烦,最后决定先给自己开发一个博客编辑器。
也算是一种非常程序员的解决方式了。doge

Hexo Lite Editor 主界面
一键抵达项目主页:https://github.com/Bai-YB/hexo-lite-editor

🧰 开发工具

这次开发主要使用了以下工具:

  • ChatGPT:前期需求分析、产品规划、技术选型和文档整理;
  • Codex CLI:承担主要的代码编写、功能实现和问题修复;
  • Claude Code CLI:负责部分页面布局检查和代码审查;
  • CC Switch:帮助我在不同模型和 API 服务之间快速切换。

在 Codex 的 Plus 限额用完以后,我还通过 CC Switch 接入了 DeepSeek。虽然实际体验证明,它在这个项目里并没有想象中那么好用就是了……

后来我又接入了一个价格比较低的中转站,整体使用下来还算稳定:

https://vibeapi.cc/sign-up?aff=GBqU

通过这个邀请码注册还可以额外获得 5 美元额度,能白嫖一点是一点。doge

🖼️ **配图建议:**这里可以放一张终端里同时开着 Codex、Claude Code 和 CC Switch 的截图。

💡 契机

其实这个博客已经搭建很久了。

但是大家应该也能发现,博客里的文章并不算多。后来我认真思考了一下,发现并不是我不愿意写东西,也不是没有内容可以分享,而是:

写作之外那些看不见的工作,实在太多了。

写完一篇文章以后,我还需要处理:

  • Hexo 的清理、生成和发布三连;
  • 两台电脑之间的文章同步;
  • Git 的拉取、提交和推送;
  • 在不同终端之间来回切换;
  • 打开浏览器上传图片;
  • 复制图片链接并插入 Markdown;
  • 检查文章头部的 Front Matter;
  • 确认文章在主题中的最终显示效果。

每一件事情单独看起来都不算复杂,但全部叠加在一起,就会不断打断写作时的思路。

很多时候,我明明已经有了一个想写的内容,最后却因为想到后面还有一整套发布流程,默默地关掉了编辑器XD

**理想中的写博客:**打开编辑器,开始创作。
**现实中的写博客:**先 pull,再上传图片,再改 Front Matter,再 Hexo 三连,再 push。😇

我也在网上找过一些 Markdown 编辑器和 Hexo 管理工具,但一直没有找到一款原生软件,能够完整解决我遇到的这些问题。

所以我就产生了一个想法:

能不能做一个专门为 Hexo 用户准备的桌面编辑器,把写作、图片上传、预览、文章管理和发布全部整合在一起?

让使用 Hexo 的 Blogger 可以更加优雅、流畅地写博客,而不是把精力消耗在各种命令、目录和终端窗口上。

刚好这两年人工智能和 Vibe Coding 的发展速度越来越快。相较于过去必须先掌握大量代码才能开发软件,现在一个清晰的需求、合理的架构和持续迭代的能力,似乎变得更加重要。

于是我也趁着这个机会,狠狠地过了一把 Vibe Coding 的瘾。

📝 关于开发前

在正式开始开发之前,我和 ChatGPT 进行了很长时间的讨论。

最开始的时候,我其实对“开发一个桌面应用”完全没有概念,甚至连这个软件到底应该做成什么样子,功能边界在哪里,都比较模糊。

我最初想到的功能非常多:

  • Markdown 文档编辑;
  • 类似 Word 的可视化编辑;
  • 实时预览;
  • 图床上传;
  • 文章管理;
  • 一键发布;
  • 多设备同步;
  • Git 操作;
  • 主题管理;
  • AI 辅助写作。

经典的“第一版就想把所有功能做完”。😋

后来我们重新梳理了一遍真正的痛点,最终把软件的核心流程确定为:

1
2
3
4
5
6
7
打开 Hexo 项目
→ 新建或编辑文章
→ 上传并插入图片
→ 实时预览
→ 保存文章
→ 生成博客
→ 发布博客

同时也确定了一个非常重要的原则:

第一版先把完整流程跑通,而不是追求大而全。

在技术选型上,一开始考虑过 Electron。它的生态成熟,调用 Node.js、Hexo 和 Git 都非常方便,但安装包体积和内存占用相对较高。

考虑到我希望这个应用足够轻量,最终选择了:

1
Tauri + Svelte + TypeScript

前端负责界面和交互,Rust 后端只负责本地文件读写、系统调用和 Hexo 命令执行。

为了继续控制项目复杂度,第一版还明确砍掉了很多功能:

  • 不内置 Node.js 和 Hexo;
  • 不使用数据库存储文章;
  • 不做复杂的所见即所得编辑;
  • 不做插件市场和主题管理;
  • 不在第一版加入 AI 自动写作;
  • Markdown 文件始终作为唯一的数据源。

这一阶段最重要的收获,并不是写出了多少代码,而是第一次真正体会到:

软件开发并不是一上来就写代码,而是先把问题想清楚。

一个模糊的想法,必须经过需求分析、功能取舍、架构设计和版本规划,才能慢慢变成一个真正可以落地的产品。

image.png

等这些事情确定下来以后,Hexo Lite Editor 才算真正进入了开发阶段。