架构总览
数据流
Input → Parser → AST (IR) → Renderer → Output
↑
AI Engine包依赖
@sciexpr/core (零依赖)
├── @sciexpr/parser
├── @sciexpr/renderer → katex (peer)
│ ├── @sciexpr/markdown
│ └── @sciexpr/vue → vue (peer)
└── @sciexpr/ai (SPI only)核心设计原则
| 原则 | 说明 |
|---|---|
| AST 即 IR | 所有输入统一解析为 AST,所有输出从 AST 渲染 |
| 适配器模式 | Parser / Renderer / AI Provider 全部可插拔 |
| 零依赖核心 | @sciexpr/core 无运行时依赖 |
| AI 不可知 | SPI 接口让使用方注入已有模型 |
| 离线可用 | 所有 AI 能力均有内置回退 |
各模块
@sciexpr/core
AST 节点类型 (17 种)、节点工厂、遍历器、序列化器、分类器
@sciexpr/parser
LaTeX 词法/语法解析、化学式解析、自动检测输入类型
@sciexpr/renderer
KaTeX HTML、Unicode 纯文本、MathML、AST→LaTeX 四种渲染器
@sciexpr/ai
4 个 SPI 接口、Pipeline、Prompt 模板、内置回退
@sciexpr/markdown
markdown-it 插件:$...$ / $$...$$ / \ce{...}
@sciexpr/vue
7 个组件 + 5 个 Composable
@sciexpr/chemistry
118 元素周期表、化学式验证器、反应平衡检查、氧化数计算
@sciexpr/math
符号库 (80+)、希腊字母、矩阵运算、行列式计算、LaTeX 生成
@sciexpr/presets
30+ 数学公式模板 (微积分/代数/三角/线代/统计/物理)、20+ 化学模板 (化合物/反应/电化学)、希腊字母预设 (24 小写 + 11 大写)