Skip to content

修复 LaTeX 导入数据丢失与 HTML 注入,补充回归测试 - #1

Merged
Escap1ng merged 1 commit into
Escap1ng:mainfrom
nisconder:fix/latex-import-data-loss
Oct 28, 2026
Merged

Escap1ng merged 1 commit into
Escap1ng:mainfrom
nisconder:fix/latex-import-data-loss

Conversation

@nisconder

Copy link
Copy Markdown
Contributor

导入 .tex 后,即使未编辑,原实现也可能丢失标题后的标签与正文、代码清单中的 %、多张图片和自定义列表项;以 < 开头的源码还会被直接写入 innerHTML。

本次将导入转换改为保留原始源码与节点快照,未编辑区段按原文导出,复杂结构回退为可编辑原文块。所有源码文本及属性均转义,旧草稿加载时清理危险 HTML。

  • 用平衡参数与环境扫描保留标题尾部、注释、嵌套结构、数学定界符及已有转义。
  • 统一图片、换行、公式、嵌套格式、列表和居中的导出;支持双击编辑已有可视化公式。
  • 修复空草稿、CRLF、配额失败、页面离开补存以及旧草稿尾注释吞掉文档边界的问题。
  • 新增图片使用 htbp,必要时补充 graphicx;UTF-8 读取保留 BOM,拒绝无效编码。
  • 新增 70 项零依赖回归测试;CI 支持 main 和 dev,部署与发布在同一提交检查通过后执行。

验证通过:

  • node --check main.js
  • node tests/smoke.mjs
  • node --test:70 通过,0 失败。
  • git diff --check

回归测试调用真实函数,并使用最小 DOM 模型;尚未进行真实浏览器交互或 TeX 编译验证。复杂环境、多图、可选标签列表和 equation 环境以可编辑原文块呈现。

@Escap1ng
Escap1ng merged commit 0694ca7 into Escap1ng:main Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants