Files
ToolBox/README.md
T
2026-06-24 22:09:30 +08:00

3.9 KiB

ToolBox

在线开发者工具箱:JSON 格式化、文本/JSON 对比、编解码、变量名转换、二维码、时间戳、颜色转换等。

License: MIT

功能

工具 路径 说明
JSON /json-formatter 格式化、压缩、转义、JSONPath 筛选、树形视图
对比 /comparator 文本行/字符 diff、JSON 结构对比
编解码 /encoder-decoder Base64、URL、Unicode、Zlib
变量名 /variable-name camelCase / PascalCase / snake_case 等
二维码 /qr-code 文本生成二维码
时间戳 /timestamp-converter 秒/毫秒/纳秒与时间字符串互转
颜色 /color-converter RGB / HEX / HSL 互转

快速开始

前置要求

  • Node.js >= 18
  • npm

安装与运行

git clone https://git.rc707blog.top/rose_cat707/ToolBox.git
cd ToolBox
npm install
npm run dev

开发服务器默认 http://localhost:3000

构建

npm run build    # 产物输出到 dist/
npm run preview  # 预览生产构建

测试

npm run test:run

环境变量

站点标题与备案号可通过环境变量配置,复制 .env.example.env 后修改:

变量 说明 默认值
VITE_APP_TITLE 站点标题(导航栏、浏览器标签) ToolBox
VITE_APP_ICP 备案号(留空则不显示) (空)
VITE_GA_MEASUREMENT_ID Google Analytics 测量 ID(留空禁用) (空,不上报)
VITE_JINRISHICI_SDK_URL 今日诗词 SDK 地址(留空禁用) (空,不加载)

Docker

构建时指定(写入静态资源默认值):

docker build \
  --build-arg VITE_APP_TITLE="我的工具箱" \
  --build-arg VITE_GA_MEASUREMENT_ID="G-XXXXXXXXXX" \
  -t toolbox:latest .

运行时覆盖(无需重新构建,容器启动时生成 config.js):

docker run --rm -p 8080:80 \
  -e APP_TITLE="我的工具箱" \
  -e APP_ICP="" \
  -e APP_GA_MEASUREMENT_ID="" \
  toolbox:latest

APP_ICP 设为空字符串时,首页不显示备案号。

Docker 部署

docker build -t toolbox:latest .
docker run --rm -p 8080:80 toolbox:latest

访问 http://localhost:8080

CI 会在 push 到 main/master 时自动构建并推送镜像到 Gitea Container Registry,详见 .gitea/README.md

项目结构

ToolBox/
├── src/
│   ├── views/           # 页面组件
│   ├── utils/           # 可测试的业务逻辑
│   ├── composables/     # Vue composables
│   ├── components/      # 公共组件
│   └── router/          # 路由
├── tests/               # Vitest 单元测试
├── deploy/              # Nginx 配置
├── Dockerfile
└── .gitea/workflows/    # CI 流水线

添加新工具

  1. src/views/ 创建 Vue 组件
  2. src/router/index.js 添加路由
  3. src/App.vue 导航栏添加入口
  4. src/views/Home.vuetools 数组中注册
  5. 如有纯逻辑,提取到 src/utils/ 并补充测试

自部署说明

  • Google Analytics:通过 VITE_GA_MEASUREMENT_ID / APP_GA_MEASUREMENT_ID 启用;默认关闭,不向 Google 上报数据
  • 今日诗词:通过 VITE_JINRISHICI_SDK_URL / APP_JINRISHICI_SDK_URL 启用;默认关闭,不加载第三方 SDK
  • deploy.sh:作者自用 SSH 部署脚本,内含固定远程路径,使用前请修改 REMOTE_DIR

第三方依赖

主要依赖及许可证见 NOTICE。Font Awesome 图标需保留其版权声明。

贡献

欢迎提交 Issue 和 Pull Request,请参阅 CONTRIBUTING.md

安全

发现安全漏洞请私下报告,详见 SECURITY.md

许可证

MIT License © 2026 renjue