# 需求分析 ## 时间戳 2026-04-19 04:13 ## 需求来源 用户在使用 AI 修改确认弹窗时遇到两个问题: 1. diff 弹窗左侧原始版本只显示一段内容,希望 AI 能一次性把全部内容都修改好 2. diff 弹窗右侧 AI 提议版本的段落间有多余空行,希望结构和左侧保持一致 ## 问题 1:左侧只显示一段 **现象**:diff 弹窗左侧「原始版本」只展示了一段文本。 **根因分析**: - `currentHtml` 取自 `.ai-content` 的 `innerHTML`,如果 `.ai-content` 内确实只有一段内容,左侧自然只显示一段 - 这不是代码 Bug,而是当前 AI 区域的内容组织问题 - 但用户期望 AI 能基于全局上下文生成更丰富、更完整的内容,而不是仅改写当前已有的段落 **解决方向**: - 在 systemPrompt 和 prompt 中明确要求 AI 生成完整的、结构化的多段落内容 - 强调 AI 应基于全局参考内容补充和完善目标区域,而不是仅做局部改写 ## 问题 2:右侧多余空行 **现象**:diff 弹窗右侧「AI 提议版本」的段落间出现额外空行,与左侧结构不一致。 **根因分析**: 1. 大模型返回的 HTML 中可能包含 `
` 标签或 `\n` 换行符 2. `

\n

` 中的换行符会被浏览器解析为文本节点,产生额外空白 3. 不同 LLM 的输出格式随机性导致 HTML 结构不统一 **解决方向**: 1. **输入端控制**:在 systemPrompt 中明确要求紧凑 HTML(禁止 `
`、禁止换行符) 2. **输出端兜底**:在 `setDiffModal` 之前对 `updatedHtml` 进行正则清洗,移除多余空行和 `
` ## 约束条件 - 保持现有 diff 弹窗的左右分栏结构不变 - 清洗逻辑不应破坏合法的 HTML 结构(如 `

` 标签内的内容)