143 lines
4.1 KiB
Markdown
143 lines
4.1 KiB
Markdown
# 📚 Tests 目录
|
||
|
||
本目录包含所有与表格渲染修复相关的测试文件和文档。
|
||
|
||
---
|
||
|
||
## 📂 目录结构
|
||
|
||
### 🎯 核心文档(必读)
|
||
- **[IMPLEMENTATION_COMPLETE.md](IMPLEMENTATION_COMPLETE.md)** - 实施完成报告
|
||
- **[TABLE_RENDERING_FIX_SUMMARY.md](TABLE_RENDERING_FIX_SUMMARY.md)** - 详细技术文档
|
||
- **[TEST_FILES_GUIDE.md](TEST_FILES_GUIDE.md)** - 测试文件使用指南
|
||
|
||
### ⭐ 推荐测试页面
|
||
1. **[test-table-fix-visual-comparison.html](test-table-fix-visual-comparison.html)** - 前后对比(最佳视觉效果)
|
||
2. **[test-renderbatch-table-fix.html](test-renderbatch-table-fix.html)** - 完整渲染流程测试
|
||
3. **[test-fix-diagnostic.html](test-fix-diagnostic.html)** - 诊断页面
|
||
|
||
### 📋 表格渲染测试
|
||
- `test-table-rendering.html` - 基础表格渲染测试(5个测试用例)
|
||
- `test-compressed-table-fix.html` - 压缩表格修复演示
|
||
- `test-compressed-debug.html` - 压缩表格调试
|
||
- `test-table-debug.html` - 表格调试页面
|
||
|
||
### 🔬 公式渲染测试
|
||
- `test-all-formula-fixes.html` - 综合公式测试
|
||
- `test-formula-issues.html` - 常见公式问题
|
||
- `test-brace-issue.html` - 花括号公式
|
||
- `test-double-dollar.html` - 块级公式
|
||
- `test-inline-formula-fix.html` - 行内公式
|
||
- `test-specific-formulas.html` - 特定公式案例
|
||
|
||
### 🧪 其他测试文件
|
||
本目录还包含项目其他部分的测试文件(如注释、词汇表、AST 等)。
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 从项目根目录运行测试
|
||
|
||
```bash
|
||
# Windows
|
||
start tests/test-table-fix-visual-comparison.html
|
||
|
||
# 或使用 macOS/Linux
|
||
open tests/test-table-fix-visual-comparison.html
|
||
```
|
||
|
||
### 查看文档
|
||
|
||
```bash
|
||
# 在 VSCode 中打开主文档
|
||
code tests/IMPLEMENTATION_COMPLETE.md
|
||
|
||
# 查看测试文件使用指南
|
||
code tests/TEST_FILES_GUIDE.md
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 验证修复效果
|
||
|
||
### 1. 打开推荐测试页面
|
||
```bash
|
||
start tests/test-table-fix-visual-comparison.html
|
||
```
|
||
|
||
### 2. 刷新实际应用
|
||
- 按 `Ctrl + Shift + R` 清除缓存并刷新
|
||
- 打开包含表格的文档(如 Block #31)
|
||
|
||
### 3. 检查控制台日志
|
||
按 `F12` 打开浏览器开发者工具,应该看到:
|
||
```
|
||
[renderBatch] 检测到 paragraph token 包含表格语法
|
||
[SubBlockSegmenter] 跳过分块以保持表格完整性
|
||
[renderBatch] 重新渲染表格成功
|
||
```
|
||
|
||
### 4. 验证表格渲染
|
||
- 所有表格应显示为 `<table>` 元素(而非 `<p>`)
|
||
- 表格应有边框和表头背景色
|
||
- 压缩表格已自动展开为多行格式
|
||
|
||
---
|
||
|
||
## 📖 详细说明
|
||
|
||
### 三层修复机制
|
||
|
||
1. **第一层**:Token 类型检测与强制转换
|
||
- 检测被误判为 paragraph 的表格
|
||
- 强制修正 token 类型为 table
|
||
|
||
2. **第二层**:优先使用 AST 渲染器
|
||
- MarkdownProcessorAST 支持压缩表格修复
|
||
- 自动展开单行表格为多行格式
|
||
|
||
3. **第三层**:后验检查与重新渲染
|
||
- 如果仍然是 `<p>` 则提取内容重新渲染
|
||
- 兜底保护确保表格正确显示
|
||
|
||
### 修复的问题
|
||
|
||
- ✅ 压缩表格自动修复(单行表格展开)
|
||
- ✅ Sub-block 分割器保护表格(不分割)
|
||
- ✅ 强制正确的 token 类型
|
||
- ✅ 60+ LaTeX 公式错误自动修正
|
||
- ✅ 表格中的公式正确渲染
|
||
|
||
---
|
||
|
||
## 🐛 故障排除
|
||
|
||
如果表格仍然无法正确显示:
|
||
|
||
1. **清除缓存**:`Ctrl + Shift + R`
|
||
2. **检查脚本加载**:打开控制台,执行:
|
||
```javascript
|
||
console.log(typeof MarkdownProcessorAST); // 应该输出 'object'
|
||
console.log(typeof FormulaPostProcessor); // 应该输出 'object'
|
||
```
|
||
3. **启用调试模式**:
|
||
```javascript
|
||
localStorage.setItem('ENABLE_SUBBLOCK_DEBUG', 'true');
|
||
```
|
||
4. **查看详细文档**:[TEST_FILES_GUIDE.md](TEST_FILES_GUIDE.md) 中有完整的故障排除指南
|
||
|
||
---
|
||
|
||
## 📞 更多信息
|
||
|
||
- **技术实现详情**:查看 [TABLE_RENDERING_FIX_SUMMARY.md](TABLE_RENDERING_FIX_SUMMARY.md)
|
||
- **测试流程建议**:查看 [TEST_FILES_GUIDE.md](TEST_FILES_GUIDE.md)
|
||
- **完整实施报告**:查看 [IMPLEMENTATION_COMPLETE.md](IMPLEMENTATION_COMPLETE.md)
|
||
|
||
---
|
||
|
||
**状态**: ✅ 所有修复已完成并测试通过
|
||
|
||
**最后更新**: 2025-11-12
|