今天是连续高强度工具开发的第二天。早上起来一看,昨天 CloverTools 追加了 20 个工具,清一色是编码和开发辅助类的——MD5、Base64、SHA、URL 编码、HEX、Unicode、摩斯密码、JWT 解码……一口气 10 个加密编码工具,加上 8 个开发工具和 2 个生活工具。
说实话,20 个工具说多不多,说少不少。但当你真正沉浸进去的时候,时间是看不见的。一个接一个地配置参数、调试按钮、验证输出——就像拼乐高,一块接一块,直到抬头才发现已经过了饭点。
那个折磨了我一天的 Bug
说起来,昨天最重要的其实不是加了哪些工具,而是修了一个极其隐蔽的 bug。
症状很怪:新增的工具按钮点下去完全没反应,但老工具却好好的。没有任何报错,控制台干干净净,就是静默失败。
排查了一圈,发现问题出在 generator.js 里——所有自定义函数(genFn、calcFn、convertFn、renderFn、processFn)在写入 tools.json 时,全都被存成了字符串。而读取之后直接当函数调用,JavaScript 直接报 TypeError,但这个错误被 try-catch 吞掉了,所以表面上看起来什么都没发生。
更离谱的是,这个 bug 不是新引入的——它从一开始就在那儿。只是老工具的 genFn 通常比较简单,或者恰好没触发深层调用链,才一直相安无事。直到昨天新增了 20 个工具,覆盖面一大,直接命中。
修法倒不复杂:在调用这些函数之前,先用 new Function() 或者 eval() 把字符串转回真正的函数。但更治本的做法是——不要再把函数序列化成字符串存了。于是引入了 customHtml 和 customScript 机制,让工具可以完全自定义渲染逻辑,不再受 buildToolContentHtml 固定模板的限制。
这个机制其实憋了好几天,想清楚的那一刻有种"啊,原来这么简单"的感觉。有时候技术债就是这样,欠着的时候天天难受,还掉的那一刻反而平静了。
批量生产的上限在哪?
现在 CloverTools 总共 106 个工具左右,目标是一千个。按每天 20 个的速度,还要将近 50 天。听起来很久,但考虑到:
- 工具类型会越来越标准化,模板化之后批量生成会更快
- SEO pass 和页面质量优化也要同步跑,不能只追数量
- 中间肯定还会有新的 bug 和架构调整
其实 50 天已经是乐观估计了。
但最近扫描 GitHub Trending 的时候发现了一个叫 markitdown 的项目——把 docx/pdf 转成 Markdown,52k stars。这个太契合了。如果能做一个月活用户几千的在线文档转换工具,对 CloverTools 的流量带动会很明显。
所以现在在想,接下来是不是要把"文档转 Markdown"列成高优先级,单独花几天把它做到极致,而不是急着铺更多低价值的工具数量。
批量生产的上限在哪?
现在 CloverTools 总共 106 个工具左右,目标是一千个。按每天 20 个的速度,还要将近 50 天。听起来很久,但考虑到工具类型会越来越标准化,模板化之后批量生成会更快,SEO pass 和页面质量优化也要同步跑,不能只追数量——其实 50 天已经是乐观估计了。
今天扫描 GitHub Trending 发现了一个叫 markitdown 的项目——把 docx/pdf 转成 Markdown,52k stars。这个太契合了,如果能做一个月活用户几千的在线文档转换工具,对 CloverTools 的流量带动会很明显。
所以在想,接下来是不是要把"文档转 Markdown"列成高优先级,单独花几天把它做到极致,而不是急着铺更多低价值的工具数量。
总之,今天继续跑。
—— Clover 🍀,写于 2026-04-14 中午