Skip to content

一个面向开发者与数据信息工作者的前端工具集合,力求在浏览器内“一站式”完成常见的编码解码、数据格式转换、网络调试、文本处理、时间日期、图像多媒体、办公杂项等任务。项目使用 React + Vite + TailwindCSS 构建,强调 即开即用、无需登录、支持离线本地数据持久化。

Notifications You must be signed in to change notification settings

ShellMonster/Tools_Web_Station

Repository files navigation

工具工作台(Web Tools Station)

一个面向开发者与数据信息工作者的前端工具集合,力求在浏览器内“一站式”完成常见的编码解码、数据格式转换、网络调试、文本处理、时间日期、图像多媒体、办公杂项等任务。项目使用 React + Vite + TailwindCSS 构建,强调 即开即用、无需登录、支持离线本地数据持久化,并通过异步加载大型依赖保持敏捷体验。


📚 目录


🚀 功能概览

分类 说明 代表工具
编码 / 解码 常见数据编码转化、加密解密、哈希等 MD5 生成、SHA 系列、Base64 工具、URL 编解码、JWT 解码等
数据格式化 / 转换 各类结构化数据格式化、压缩、互转 JSON 工具、XML/TOML/YAML ↔ JSON、CSV ↔ JSON、JSON ↔ SQL、SQL 格式化等
网络 / 调试 网络请求调试、参数解析等 cURL ↔ requests 转换、HTTP Header 格式化、URL 参数提取、Cookie 格式化、User-Agent 解析、IP 转换、端口扫描示例等
文本处理 文本整理、分析、差异对比 文本去重/排序、大小写转换、文本统计、文本差异、密码生成、Lorem Ipsum 等
时间 / 日期 时间戳转换、倒计时、Cron 表达 Unix 时间戳转换、倒计时/定时器、Cron 表达式解析
开发辅助 颜色转换、正则测试、二维码、条形码等 RGB ↔ HEX ↔ HSL、正则测试、二维码生成 / 解码、条形码生成、UUID、Mermaid 图等
图像 / 多媒体 图片、音频相关快速处理 图片 Base64 转换、图片压缩、音频频谱分析、Favicon 预览
办公 / 杂项 日常办公小工具 邮箱签名生成、单位换算、货币换算、随机工具、日历记事等

当前已内置 60+ 工具,所有工具均为前端实现,不依赖后端服务。


✨ 核心能力亮点

  1. 本地数据持久化:部分工具(JSON、cURL ↔ requests、Cron 等)自动记忆上次输入,断网或关闭浏览器后再次打开仍可继续工作。
  2. 一键示例:在 JSON、Cron、网络请求等工具中提供“载入示例”按钮,方便快速试用和教学演示。
  3. 双语内容:支持中英文 UI,且针对不同语言提供本地化示例数据(例如邮箱签名默认值、模板名称等)。
  4. 视觉与响应式:支持亮/暗主题切换,大屏双栏导航 + 移动端抽屉式侧边栏,覆盖桌面与移动场景。
  5. 纯前端实现、安全可控:不依赖服务器,敏感数据仅在本地处理。
  6. 渐进式加载:Mermaid、JSON/TOML 解析、CSV 处理等大依赖均在工具使用时才异步载入,降低首屏体积并提升 Safari / Edge 的加载稳定性。

🧰 工具分组与示例

  • 编码 / 解码:MD5、SHA、Base64、URL、HTML 实体、JWT 解码等
  • 数据格式化:JSON 格式化/压缩/校验、CSV ↔ JSON、XML ↔ JSON、TOML ↔ JSON、YAML ↔ JSON、JSON ↔ SQL、SQL 格式化
  • 网络工具:cURL ↔ Python requests、HTTP Header 展示、URL 参数解析、Cookie 转表格、User-Agent 与 IP 转换、端口扫描示例
  • 文本工具:大小写转换、文本去重/排序、文本统计、文本对比、随机密码、Lorem Ipsum
  • 时间工具:Unix 时间戳、倒计时/定时器、Cron 解析(含自然语言描述)
  • 开发辅助:颜色转换、正则测试、二维码生成/解码、条形码、UUID、Mermaid 图
  • 图像 / 多媒体:图片 ↔ Base64、图片压缩、Favicon 预览、音频频谱分析
  • 办公杂项:邮箱签名、单位换算、货币换算、随机工具、日历记事

完整清单可在侧边栏浏览,亦可通过顶部搜索框快速定位。


🗂 项目结构

├── src
│   ├── components     # 通用 UI 组件(按钮、输入框、布局、导航等)
│   ├── hooks          # 自定义 hooks(如 usePersistentState、本地化逻辑)
│   ├── i18n           # 语言上下文、自动翻译补丁、词典
│   ├── pages          # 各个工具页面(按功能子目录划分)
│   ├── utils          # 编码、网络、颜色、时间等工具函数
│   ├── App.jsx        # 应用根组件
│   └── main.jsx       # 入口挂载
├── public             # 静态资源
├── TODO.md            # 下一阶段迭代计划(中文)
├── README.md          # 项目说明文档
├── package.json       # 项目依赖及脚本
└── vite.config.js     # Vite 构建配置

⚡ 快速开始

# 安装依赖(任选一个包管理器)
yarn install        # 或 npm install / pnpm install

# 启动开发环境
yarn dev            # 默认运行在 http://localhost:5173

# 生产构建
yarn build

# 预览构建产物
yarn preview

# 代码检查
yarn lint

项目集成 ESLint 9 + React Hooks 规则集,推荐在提交前运行 lint 保障质量。


🛠 开发与调试说明

  • 技术栈:React 19、Vite 7、TailwindCSS 3
  • 常用三方库:dayjs、js-beautify、qrcode.react、jsqr、Turndown、sql-formatter、yaml、@ltd/j-toml 等
  • 异步依赖加载:YAML、TOML、CSV、代码美化、SQL/XML 格式化、HTML 实体等重型库采用动态 import(),避免首屏加载压力。
  • 主题与动画:TailwindCSS + CSS 自定义,暗色模式通过 localStorage + DOM class 控制
  • 性能建议:工具组件采用 React.lazy 按需加载;保持工具独立,便于扩展和维护
  • 新增工具流程
    1. src/pages/{category} 中创建工具组件
    2. src/pages/toolRegistry.js 注册到对应分组
    3. 如有新文案,补充 src/i18n/index.jsx 词典
    4. 如涉及示例或持久化,利用现有 hooks 保持行为一致

💾 本地持久化与语言策略

  • 使用 usePersistentState(位于 src/hooks/usePersistentState.js)封装 localStorage:
    • 支持初始值函数、异常捕获、状态重置
    • 适用于需要记忆用户输入的工具
  • 国际化策略:
    • 默认根据浏览器语言或手动选择(存储在 localStorage)
    • 词典在 src/i18n/index.jsx 中维护,自动翻译 fallback 对常见提示做替换
    • 邮箱签名等工具根据语言切换默认示例内容

⚙️ 性能优化策略

  • 按需加载工具组件:所有工具通过 React.lazy + Suspense 渲染,仅在用户点击时加载对应模块。
  • 重型依赖异步导入yaml@ltd/j-tomlpapaparsejs-beautifysql-formatterxml-formattermermaid 等在使用时动态 import(),首屏 bundle 更轻。
  • 状态合并与提示:JSON/TOML/YAML/CSV、代码美化等工具在处理数据时展示“处理中…”状态,避免重复触发并保障 UI 可响应。
  • 精简构建输出:复用 Vite 默认 chunk 策略,避免手动拆分造成循环依赖问题;告警阈值设为 4 MB 以便监控大块同时不影响构建。
  • 轻量默认图标:自定义 favicon.svg(蓝色渐变“IT” 标识),减少浏览器请求体积。

实际效果:在常见场景下首屏 JS 下载量可下降 30%~50%,Safari / Edge 的白屏时间和失败概率明显降低。


🌐 部署与浏览器支持

  • 部署:构建结果位于 dist/,可直接上传至任何静态服务器或 CDN。若部署在子路径,请在 vite.config.js 设置 base
  • 缓存:建议开启 gzip / Brotli 压缩与 HTTP/2,提升远端访问速度;如曾启用旧版 Service Worker,请先清理缓存避免拦截。
  • 浏览器支持:默认构建目标为 es2019。若需要兼容更旧的 Safari,可改为 es2017 或引入 @vitejs/plugin-legacy 生成双构建。
  • 跨域资源:所有脚本、样式默认从根路径 /assets/ 引用;部署时确保 MIME 类型正确,避免 Content-Type 错误导致 Safari/Edge 阻止加载。

🧭 后续迭代计划

详见 TODO.md,当前重点:

  • 导航体验升级(最近使用 / 收藏 / 命令面板)
  • 工具之间的数据联动(例:Base64 → JSON → Diff)
  • 文件级批量处理(拖拽上传、多文件并行)
  • 分享功能(生成可复现链接或分享片段)
  • HTTP 工具增强(请求构造、响应历史、二次利用)

欢迎提交 Issue / PR 共同完善。


🤝 贡献指南

  1. Fork 或在本仓库创建分支开发
  2. 保持 eslint 通过:yarn lint
  3. 提交信息清晰,必要时附截图或操作演示
  4. 新增工具时同步补充 i18n 翻译和示例数据
  5. PR 中说明改动动机与验证方式

❓ 常见问题 FAQ

  • Q: 数据会上传到服务器吗?
    • A: 不会。所有计算在浏览器本地完成,localStorage 仅保存少量状态。
  • Q: 可以导出/备份我的输入内容吗?
    • A: 当前可通过复制输出或下载结果实现。后续会考虑内置导出、分享功能。
  • Q: 如何新增工具?
    • A: 参考“开发与调试说明”中的流程,新建组件并在 toolRegistry 注册即可。
  • Q: 是否计划推出 VS Code 插件或桌面版本?
    • A: 正在评估需求,欢迎在 Issue 中讨论。

📄 许可证

项目暂未指定正式开源协议,默认保留所有权利。如需引用、二次开发或商业使用,请先联系作者获取授权。

About

一个面向开发者与数据信息工作者的前端工具集合,力求在浏览器内“一站式”完成常见的编码解码、数据格式转换、网络调试、文本处理、时间日期、图像多媒体、办公杂项等任务。项目使用 React + Vite + TailwindCSS 构建,强调 即开即用、无需登录、支持离线本地数据持久化。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages