🔧 HTML标签修复

智能修复翻译后HTML文件中多余的标签,使用LCS算法对比基准文件和目标文件,自动删除多余的闭合标签。

HTML标签修复功能界面

功能概述

这是一个用于修复翻译后HTML文件中多余标签的自动化工具。该工具以原始文件夹(www0)为基准,自动检测并删除目标文件夹(www)中翻译后多出的HTML闭合标签,如多余的 `< /select>`、`< /div>` 等标签。

工作原理

1. 标签提取

脚本使用正则表达式提取HTML文件中的所有标签:

  • 识别开始标签:``
  • 识别闭合标签:``
  • 识别自闭合标签:``(不会被统计)

2. 标签序列对齐(LCS)

将基准与目标两侧的标签流统一抽取为令牌序列(例如 `open:div`、`close:div`,忽略自闭合标签):

  1. 计算两侧令牌序列的最长公共子序列(LCS),保持与基准一致的相对顺序
  2. 目标序列中"未能加入 LCS 的令牌"视为相对基准的多余
  3. 在这些多余令牌中,仅删除闭合令牌(`close:*`),从而优先删除"提前闭合"的标签
  4. 删除按"从后往前"的顺序执行,避免位置偏移

主要功能

  • 自动检测多余标签:通过对比基准文件和目标文件的HTML标签结构,识别出多余的闭合标签
  • 安全备份:修复前自动创建 `.backup` 备份文件,确保原文件安全
  • 详细日志记录:生成JSON格式的日志文件,记录每个文件的修改行号
  • 进度显示:实时显示处理进度和修复统计信息

使用示例

修复前(错误):
<div class="form-floating">
  <select id="floatingSelect6" class="form-select">
  </select>  <!-- 提前闭合(错误) -->
  <option>数学</option>
  <option>英语</option>
  </select>
</div>
修复后(正确):
<div class="form-floating">
  <select id="floatingSelect6" class="form-select">
    <option>数学</option>
    <option>英语</option>
  </select>
</div>

日志文件格式

日志文件采用标准JSON格式,记录每个文件中被删除标签的行号:

{
  "add-course.html": [1609],
  "dashboard.html": [156, 289],
  "settings.html": [45, 78, 234]
}
返回功能列表