拒绝注册和广告:我把常用的 JSON、Diff、Mermaid 工具全整合了

39 阅读4分钟

最近花了点时间搞了个小站,把自己平时常用的几个开发工具整合到一起了,趁周末写篇文章记录一下。

devref_english_cover_1768725299883.png

起因

其实就是受不了了。

平时写代码经常需要格式化个 JSON、对比两段文本的差异、画个简单的流程图。这些需求不大,但每次都得去搜在线工具,然后:

  • 这个网站弹广告
  • 那个网站要注册
  • 好不容易格式化完了,想发给同事看,只能截图

后来实在烦了,干脆自己撸一个。

在线工具

目前整了十来个工具,日常开发基本够用:

工具功能
JSON Editor格式化、压缩、校验
Diff Checker文本对比,高亮差异
Mermaid Editor流程图、时序图在线画
Markdown Preview实时预览,支持 GFM
Regex Tester正则测试,匹配高亮
SQL FormatterSQL 格式化、压缩
Base64编解码
JWT Decoder解析 token
...还有几个,就不一一列了

界面做得比较简洁,没什么花里胡哨的东西,打开就能用。

一键分享

这个是我觉得最实用的功能。

比如你格式化了一段 JSON,想发给同事看,点一下分享按钮,直接生成一个链接。对方打开就是你当前的内容,不用复制粘贴,不用截图。

原理其实很简单,就是把内容编码后放到 URL hash 里,数据不经过服务器,全在本地处理。

用起来大概是这样:

https://devref.cc/tools/json#eyJjb2RlIjoie1xuICBcIm5hbWV...

对方打开就能看到一模一样的 JSON 和格式化结果。

团队内部对个接口返回格式、讨论个数据结构什么的,直接甩链接就行,比以前方便多了。

DevRef Library

工具做完之后,又顺手整了个文档库。

说白了就是把平时老忘的东西整理了一下,方便自己查。包括:

  • Linux 命令速查:grep、sed、awk、find 这些常用命令的参数和例子
  • Git 速查:rebase、cherry-pick、bisect 这些不常用但关键时刻要用的
  • HTTP 状态码:1xx 到 5xx 全覆盖,忘了就翻一下
  • 系统延迟数字:L1 缓存、SSD、网络延迟的数量级,面试可能会问
  • Redis 数据结构:各种类型的常用命令
  • IDE 快捷键:VS Code、JetBrains、Xcode 的快捷键对照

还有 Docker、K8s、Cron 表达式、正则语法这些,基本上开发中会翻的东西都有。

每个文档都做得比较简洁,不整那些废话,打开就是命令 + 例子,直接能用。

Daily Picks

这个是后来加的功能,每天自动更新。

原理是用脚本抓取一些技术资讯源(Hacker News、GitHub Trending 之类的),然后用 AI 筛选和总结,挑出几篇值得看的内容。

每天大概 5-10 条,涵盖:

  • 开源项目推荐
  • 技术文章精选
  • 行业新闻

不用自己去刷信息流,打开看一眼就知道今天有什么值得关注的。

说实话这个功能主要是给自己用的,早上泡杯咖啡扫一眼,比刷手机效率高。

daily_picks.png

技术栈

既然是掘金,顺便聊聊技术实现:

  • 前端: Next.js 16 + TypeScript + Tailwind
  • 部署: Firebase Hosting,静态导出,CDN 分发
  • 编辑器: Monaco Editor(就是 VS Code 那个)
  • 流程图: Mermaid.js
  • Diff: diff-match-patch
  • Daily Picks: Cloud Run Job + Gemini API,每天定时跑

整个项目主体是纯静态的,没有后端,所有处理都在浏览器里完成。这样一是省服务器成本,二是用户数据安全,不用担心隐私问题。

Daily Picks 用的是 Cloud Run Job 每天定时生成,生成完推送到静态文件里,所以访问起来也很快。

一些细节

做的时候也踩了些坑,简单提几个:

  1. URL 长度限制:分享内容太长的话 URL 会超限,后来加了压缩,用 pako 做 gzip 压缩后再 base64 编码,基本够用了
  2. Mermaid 渲染性能:大图会卡,做了 debounce,输入停顿 300ms 后再渲染
  3. SEO:静态站 SEO 比较好做,每个工具页都有独立的 title/description,还加了 Schema.org 结构化数据
  4. 搜索:集成了 Pagefind,支持全站搜索,Cmd+K 唤起

最后

地址:devref.cc

代码没开源(主要是写得比较糙,不太好意思放出来),但如果有同学对某个功能实现感兴趣,评论区可以聊。

工具类的东西,好不好用试试就知道。欢迎提建议,有什么常用工具想加的也可以说。