- currentHtml提取后添加 replace(/>(\s+)</g, '><') 压缩标签间空白 - cleanHtml处理后同样压缩, 确保diff两侧格式对齐 - 消除模板源码排版换行被diff算法误识别为删除内容的问题
20 lines
746 B
Markdown
20 lines
746 B
Markdown
# 功能变更实现方案文档(20260420_0009)
|
||
|
||
## 实现方案
|
||
|
||
### 变更点 1:currentHtml 提取后压缩空白
|
||
Line 933:
|
||
```ts
|
||
const currentHtml = targetRegionEl ? targetRegionEl.innerHTML.replace(/​/g, '').trim() : '';
|
||
```
|
||
→ 添加 `.replace(/>(\s+)</g, '><')`
|
||
|
||
### 变更点 2:cleanHtml 处理后压缩空白
|
||
Line 1016-1020:
|
||
在 `cleanHtml.trim()` 之后追加 `.replace(/>(\s+)</g, '><')`
|
||
|
||
### 设计理由
|
||
- `>(\s+)<` 正则匹配任意 HTML 标签之间的空白字符(换行、空格、制表符),替换为 `><` 使 HTML 紧凑
|
||
- 仅影响 diff 比对前的数据清洗,不影响编辑器实际渲染
|
||
- 两侧(原始版本和 AI 版本)都做同样处理,确保 diff 只比对有意义的内容差异
|