# 从备份干净重打补丁模板

当多轮修改把括号搞乱时，最可靠的回退方法：从备份恢复 → 用一个 Python 脚本一次性打完所有补丁（逐个 replace → 立即验括号 → 失败回滚）。

## 模板

```python
#!/usr/bin/env python3
"""从备份恢复并重新应用所有补丁"""
import sys

with open('/path/to/工具/index.html') as f:
    c = f.read()

assert c.count('{') == c.count('}'), "备份本身括号就不对！"

fixes = 0

# 补丁 1：描述
old1 = """精确的旧文本"""
new1 = """替换后的文本"""
if old1 in c:
    c = c.replace(old1, new1); fixes += 1
    assert c.count('{') == c.count('}'), "补丁1破坏括号"
else:
    print("❌ 补丁1未匹配"); sys.exit(1)

# 补丁 2...
# ...

with open('/path/to/工具/index.html', 'w') as f:
    f.write(c)

print(f"应用 {fixes} 个补丁，括号 OK")
```

## 铁律

1. **每个补丁后立即 `assert` 括号平衡**——失败就知道是哪步，直接回滚重来
2. **old 字符串必须从备份文件中精确复制**——多打一个空格都匹配不上
3. **补丁顺序**：先做无依赖的（如 URL 常量），后做有依赖的（如使用该常量的代码）
4. **使用三引号 `"""`** 包裹多行旧文本，避免转义地狱
5. 改完 **立即 `node --check` 验 JS**，再 `tcb deploy`
