# H5 到小程序样式检查工具

自动化检查 H5 到小程序迁移过程中的样式差异。

## 功能

- ✅ 自动提取 H5 中的 Tailwind 类
- ✅ 自动提取小程序中的样式
- ✅ 逐个对比每个属性
- ✅ 检查全局样式（line-height 等）
- ✅ 检查 font-size 和 line-height
- ✅ 检查 padding、margin、gap
- ✅ 检查 width、height
- ✅ 检查 border-radius
- ✅ 生成详细的 Markdown 报告

## 安装

```bash
# 无需安装依赖，使用 Python 3.6+ 即可
python --version  # 确保 Python 3.6+
```

## 使用方法

### 基本用法

```bash
python scripts/check_h5_to_mp.py \
  --h5 docs/h5_ui/pages/board-customer.html \
  --wxss apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxss \
  --output report.md
```

### 参数说明

- `--h5`：H5 HTML 文件路径（必需）
- `--wxss`：小程序 WXSS 文件路径（必需）
- `--output`：输出报告路径（可选，默认 `report.md`）

## 输出示例

```markdown
# H5 到小程序样式对比报告

## 📊 问题统计

- ❌ 严重问题：5 个
- ⚠️ 警告：7 个
- ℹ️ 提示：3 个
- **总计**：15 个

## ❌ 严重问题

### ❌ 严重 page - line-height

- **位置**：page 全局样式
- **H5 值**：无全局设置
- **应该是**：无
- **实际是**：1.5
- **差异**：100.0%

### ❌ 严重 text-xs - line-height

- **位置**：.assistant-label
- **H5 值**：16px
- **应该是**：29rpx
- **实际是**：缺失
- **差异**：100.0%
```

## 检查项目

### 1. 全局样式

- [ ] page 的 line-height
- [ ] view 的 line-height
- [ ] 全局 font-size
- [ ] 全局 padding/margin

### 2. 文本类（text-xxx）

对每个 text-xxx 类：
- [ ] font-size
- [ ] line-height（必须检查）

### 3. 间距类（p-, m-, gap-）

对每个间距类：
- [ ] padding
- [ ] margin
- [ ] gap

### 4. 尺寸类（w-, h-）

对每个尺寸类：
- [ ] width
- [ ] height

### 5. 圆角类（rounded-）

对每个圆角类：
- [ ] border-radius

## 问题级别

- ❌ **严重**：差异 > 20%
- ⚠️ **警告**：差异 10-20%
- ℹ️ **提示**：差异 < 10%
- ✅ **正确**：差异 < 2%

## 扩展

### 添加自定义 Tailwind 配置

编辑 `check_h5_to_mp.py` 中的 `TAILWIND_CONFIG`：

```python
TAILWIND_CONFIG = {
    'text': {
        'text-xs': {'font-size': '12px', 'line-height': '16px'},
        # 添加更多...
    },
    'spacing': {
        'p-6': '24px',
        # 添加更多...
    },
}
```

### 调整换算比例

如果目标设备不是 412px，修改 `PX_TO_RPX`：

```python
# 375px 设备
PX_TO_RPX = 2.0

# 414px 设备
PX_TO_RPX = 1.8116
```

## 限制

1. 目前只检查类选择器（`.class`），不检查标签选择器
2. 不检查伪类和伪元素
3. 间距类的匹配逻辑需要根据实际情况调整
4. 不检查 JavaScript 动态样式

## 贡献

欢迎提交 Issue 和 Pull Request！

## 许可

MIT
