# 使用指南 (Usage Guide)

`l-tool` 是一个多功能的命令行工具集，旨在简化日常开发任务。

## 安装

如果你已经安装了 Rust 环境：

```bash
cargo install --path .
```

## 命令详解

### 1. JavaScript 依赖管理 (`js`)

用于管理 JavaScript/TypeScript 项目的依赖升级。支持自动检测包管理器 (npm, yarn, pnpm, rush)。

```bash
# 升级所有依赖到最新版本
l-tool js upgrade

# 仅升级生产依赖 (dependencies)
l-tool js upgrade --prod-only

# 仅升级开发依赖 (devDependencies)
l-tool js upgrade --dev-only
```

### 2. 图片处理 (`image`)

#### 格式转换 (`convert`)

将图片转换为不同的格式。

```bash
# 将 input.png 转换为 webp 格式
l-tool image convert input.png -f webp

# 指定输出文件名
l-tool image convert input.png -f jpg --out-name output.jpg
```

支持的格式：png, jpeg, webp, gif, tiff, avif, bmp, dds, exr, ff, hdr, ico, pnm, qoi, tga。

#### 图片压缩 (`compress`)

压缩图片以减小文件大小。

```bash
# 压缩图片，默认质量 80
l-tool image compress input.png

# 指定压缩质量 (0-100)
l-tool image compress input.jpg --quality 60

# 指定输出目录
l-tool image compress input.png --out-dir ./compressed
```

### 3. PDF 处理 (`pdf`)

#### PDF 合并与生成 (`bundle`)

将多个图片或 PDF 文件合并为一个 PDF 文件。

```bash
# 合并多个文件
l-tool pdf bundle -i file1.png -i file2.pdf -o output.pdf

# 扫描目录下的所有支持文件并合并
l-tool pdf bundle --dir ./documents -o all.pdf

# 指定旋转角度 (例如将扫描件旋转 90 度)
# 对单个文件旋转
l-tool pdf bundle -i "scanned.pdf:90" -i other.pdf

# 全局旋转所有页面
l-tool pdf bundle -i file1.pdf --rotate 90

# 指定纸张大小和方向 (默认 A4, Portrait)
l-tool pdf bundle -i img.png --paper a4 --orientation landscape
```

### 4. Git 工具 (`git`)

#### 清理忽略文件 (`rewrite-ignore`)

从 Git 历史记录中彻底删除当前被 `.gitignore` 忽略但已被提交的文件。这对于清理意外提交的敏感文件或大文件非常有用。

```bash
# 交互式运行 (会请求确认)
l-tool git rewrite-ignore

# 跳过确认 (慎用)
l-tool git rewrite-ignore -y
```

**注意**: 此操作会重写 Git 历史，请确保所有协作者都知晓。

### 5. Shell 自动补全 (`completion`)

生成 Shell 自动补全脚本。

```bash
# 生成 zsh 补全脚本
l-tool completion zsh

# 生成 bash 补全脚本
l-tool completion bash
```

支持的 Shell: bash, zsh, fish, powershell, elvish。
