Files
Quentin 3271fee5cc init: WordFileParse docx→HTML 解析服务(含 Word EQ 域公式修复)
服务:Spring Boot 3.2 + docx4j 8.3.9,POST /api/v3/server_office_file/file/parse
      接受 .docx,返回 HTML(公式 → LaTeX,图片 → RustFS 外链)

公式支持三类来源:
- OMML(Word 2007+ 公式)      → Python omml_mathml2latex
- MathType OLE 对象            → Ruby mathtype2mathml → MathML → LaTeX
- Word EQ 域(老教辅主力)      → EqToLatexUtil(本次新增)

本次改动:
1. 新增 java-svc/.../core/EqToLatexUtil.java:
   移植自 jby backend-services office-core,EQ 语法 → LaTeX
   (\f→\dfrac、\r→\sqrt、\i→\int/\sum/\prod、\s→^{}/_{}、\b→\left\right、
     \a→array、\x→\boxed/\overline、\o\al 堆叠、圈码、化学符号、极限、连等式)
   品牌标记 JBYU* → WPU*,与采集端一致
2. CtoMathFinder:接上 EQ 分支(原为 not-ported 桩),域代码经
   EqToLatexUtil.convert 转 LaTeX 写入 eqLatexMap(WPEQNUM 占位符)
3. WordParseUtil.dealPlaceholder:EQ 的 LaTeX 同样加 \( \) 包裹
   (原先因 WPEQNUM 例外不加包裹,前端/MathJax 不渲染)

修前症状:教辅 Word 里分式/方程组/上下标整段丢失(如 {−1/3, 1} 变成 {-,1})
修后实测:46 份教辅 2908 处 EQ 域全部还原,公式总数 2954 处、零未包裹残留

安全:application.yml(含 RustFS 密钥)不入库,提供 application.yml.example;
      OssService 的 @Value 默认密钥已清空
2026-09-29 09:43:13 +08:00
..

MathType to MathML Converter

一个基于 Ruby gem 的 MathType 二进制文件转 MathML 的 Node.js 服务器。

功能特点

  • 支持上传 MathType 二进制文件 (.bin)
  • 转换为标准 MathML 格式
  • RESTful API 接口
  • Web 界面演示
  • Docker 容器化部署
  • 网络优化和重试机制
  • 支持开发和生产环境配置

快速开始

方式一:Docker 部署(推荐)

Windows 环境

# 开发环境构建并启动
.\docker-build.ps1

# 生产环境构建并启动
.\docker-build.ps1 -Production

# 查看帮助
.\docker-build.ps1 -Help

Linux/macOS 环境

# 增强构建脚本(推荐)
./docker-build-enhanced.sh

# 标准构建脚本
./docker-build.sh

# 或使用 docker-compose
docker-compose up -d

# 生产环境
docker-compose -f docker-compose.production.yml up -d

方式二:本地部署

  1. 确保安装了 Ruby 和 Node.js
  2. 安装依赖:
# 安装 Ruby 依赖
bundle install

# 安装 Node.js 依赖  
npm install
  1. 启动服务:
npm start

配置说明

环境配置

  • 开发环境: 使用 docker-compose.yml,包含代码热重载
  • 生产环境: 使用 docker-compose.production.yml,优化性能和安全性

配置文件

  • config/app.json: 应用基础配置
  • uploads/: 文件上传目录
  • vendor/gems/: 本地 Ruby gems

API 使用

转换 MathType 文件

curl -X POST http://localhost:3000/convert-mathtype \
  -F "file=@path/to/mathtype.bin"

健康检查

curl http://localhost:3000/health

Web 界面

启动服务后访问:http://localhost:3000/mathtype_converter_demo.html

故障排除

网络问题

如果遇到 Docker Hub 连接问题:

  1. 使用增强构建脚本:./docker-build-enhanced.sh 或 .\docker-build.ps1
  2. 脚本会自动检测网络状况并使用国内镜像源

常见问题

  • 端口冲突: 修改 docker-compose.yml 中的端口映射
  • 构建失败: 清理 Docker 缓存 docker system prune
  • 权限问题: 确保 uploads 目录权限正确

技术栈

  • 后端: Node.js + Express
  • Ruby Gem: mathtype_to_mathml
  • 容器化: Docker + Docker Compose
  • 前端: 原生 HTML/JavaScript
  • 网络优化: 国内镜像源支持