Files
ToolBox/README.md
T
renjue f1502ed08c
CI / docker (push) Successful in 11m42s
初始化 ToolBox 开发者工具箱。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 11:15:38 +08:00

140 lines
3.9 KiB
Markdown

# ToolBox
在线开发者工具箱:JSON 格式化、文本/JSON 对比、编解码、变量名转换、二维码、时间戳、颜色转换等。
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
## 功能
| 工具 | 路径 | 说明 |
|------|------|------|
| 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
### 安装与运行
```bash
git clone https://git.rc707blog.top/rose_cat707/ToolBox.git
cd ToolBox
npm install
npm run dev
```
开发服务器默认 `http://localhost:3000`
### 构建
```bash
npm run build # 产物输出到 dist/
npm run preview # 预览生产构建
```
### 测试
```bash
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
**构建时**指定(写入静态资源默认值):
```bash
docker build \
--build-arg VITE_APP_TITLE="我的工具箱" \
--build-arg VITE_GA_MEASUREMENT_ID="G-XXXXXXXXXX" \
-t toolbox:latest .
```
**运行时**覆盖(无需重新构建,容器启动时生成 `config.js`):
```bash
docker run --rm -p 8080:80 \
-e APP_TITLE="我的工具箱" \
-e APP_ICP="" \
-e APP_GA_MEASUREMENT_ID="" \
toolbox:latest
```
`APP_ICP` 设为空字符串时,首页不显示备案号。
## Docker 部署
```bash
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`](./.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.vue``tools` 数组中注册
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](./NOTICE)。Font Awesome 图标需保留其版权声明。
## 贡献
欢迎提交 Issue 和 Pull Request,请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md)。
## 安全
发现安全漏洞请私下报告,详见 [SECURITY.md](./SECURITY.md)。
## 许可证
[MIT License](./LICENSE) © 2026 renjue