Skip to content

更新日志

0.1.17

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.10.1

0.1.16

Patch Changes

  • Updated dependencies [53c4c94]
    • @sciexpr/vue@0.10.0

0.1.15

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.9.2

0.1.14

Patch Changes

  • Updated dependencies
    • @sciexpr/ai@0.2.1
    • @sciexpr/vue@0.9.1

0.1.13

Patch Changes

  • Updated dependencies
    • @sciexpr/ai@0.2.0
    • @sciexpr/vue@0.9.0

0.1.12

Patch Changes

  • Updated dependencies
  • Updated dependencies
    • @sciexpr/ai@0.1.2
    • @sciexpr/vue@0.8.3

0.1.11

Patch Changes

  • Updated dependencies [5398c29]
    • @sciexpr/vue@0.8.2

0.1.10

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.8.1

0.1.9

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.8.0

0.1.8

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.7.0

0.1.7

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.6.0

0.1.6

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.5.0

0.1.5

Patch Changes

  • Updated dependencies
    • @sciexpr/renderer@0.2.0
    • @sciexpr/vue@0.4.1
    • @sciexpr/markdown@0.1.3

0.1.4

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.4.0

0.1.3

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.3.0
    • @sciexpr/presets@0.2.0

0.1.2

Patch Changes

  • Updated dependencies
    • @sciexpr/vue@0.2.3

0.1.1

Patch Changes

  • Updated dependencies
    • @sciexpr/core@0.1.1
    • @sciexpr/vue@0.2.2
    • @sciexpr/chemistry@0.1.1
    • @sciexpr/math@0.1.1
    • @sciexpr/presets@0.1.2
    • @sciexpr/ai@0.1.1
    • @sciexpr/parser@0.1.2
    • @sciexpr/renderer@0.1.2
    • @sciexpr/markdown@0.1.2

v0.8.0 (2026-07-13)

🔍 发包审计 & 质量保障

严重修复 (7 项)

  • @sciexpr/core: hasMathNodes() 移除 'text' 误判,修复 ExpressionClassifier 纯文本被归类为 math
  • @sciexpr/chemistry/math/physics/presets: tsconfig 补充 "composite": true + "references" 项目引用
  • @sciexpr/vue: tsconfig references 补全全部兄弟包;vite.config external 使用 regex 外部化 codemirror 全家桶

中等修复 (5 项)

  • @sciexpr/vue: module 字段统一为 .js;vitest.config alias 补全全部兄弟包
  • @sciexpr/chemistry/math/physics/presets: 创建 tsup.config.tsfiles 补充 README.md

功能修复 (3 项)

  • MarkdownEditor: onHeaderClear 改用 setValue('') 替代无效的 replaceSelection('')
  • MarkdownPreviewPane: 空状态文本改为中文"预览内容将在此处显示…"
  • useMarkdownEditor: 新增 setValue() 方法替换整个文档内容

🧪 E2E 测试

  • 新增 26 条 Playwright E2E 测试,覆盖 MarkdownEditor 全交互链路:
    • Initial Render (4) / Clear Button (3) / Toolbar Formatting (5)
    • Preview Rendering (4) / Split Pane Drag (2) / Sidebar (2)
    • Edge Cases (3) / AI Button (3)
  • 新增 playwright.vue.config.ts Vue Playground 专用配置

✅ 验证结果

验证项结果
pnpm build11/11 包 ✅
vitest (root)390/390 ✅
vitest (vue)37/37 ✅
playwright E2E26/26 ✅
发包评分92/100

v0.7.0 (2026-07-10)

🎨 CategoryPalette — 分类符号快速插入面板

全新的 CategoryPalette 组件位于 Markdown 编辑器工具栏上方,根据左侧侧边栏的分类自动切换显示对应的子分类常用符号,点击即可插入 LaTeX。

三大主分类 & 子分类

主分类子分类
数学运算、关系、箭头、希腊字母、矩阵、上下标、大型运算、函数、双曲/反三角、其他符号
物理数学全部 10 类 + 物理常量、SI 单位、量子力学、矢量微积分
化学化学物质、化学离子、常用符号、希腊字母、化学元素

组件

  • CategoryPalette (@sciexpr/vue) — 上下布局:上排子分类标签(横向滚动),下排符号按钮(自动换行)
  • 每个符号按钮显示名称 + 符号值,点击即插入 LaTeX 到编辑器
  • 矩阵类模板(\begin{pmatrix}...)自动使用 display math $$...$$ 包裹
  • 新增 showPalette prop 控制显隐

数据层

  • @sciexpr/math: 新增 FUNCTIONS(22 个函数)、HYPERBOLIC_TRIG(7 个双曲/反三角)、MATH_PALETTE_CATEGORIES(10 个子分类 palette 数据)
  • @sciexpr/physics: 新增 PHYSICS_PALETTE_CATEGORIES(物理常量 / SI 单位 / 量子力学 / 矢量微积分,全部引用 ALL_CONSTANTS / ALL_UNITS 避免重复)
  • @sciexpr/presets: 新增 palette-chem.ts,导出 CHEM_PALETTE_CATEGORIES(5 个化学子分类,希腊字母从 @sciexpr/math 统一引用)
  • @sciexpr/vue: 新增 data/category-palette.ts 聚合层,导出 MASTER_PALETTE_DATAgetPaletteSymbolsgetCommonSymbolssearchPaletteSymbols

通信链路

  • EditorSidebar 新增 update:activeCategory emit,主分类切换时通知 MarkdownEditor
  • MarkdownEditor 集成 CategoryPaletteactiveCategory 状态联动

🔧 渲染器修复

\left/\right 尾随空格修复

  • LatexReverseRenderersymbol 节点渲染器对所有以字母结尾的 LaTeX 命令添加尾随空格,导致 \left(\left (,KaTeX 解析失败
  • 修复:排除 delimiter 前缀命令(\left\right\middle\big* 等),改用 Set.has() 精确匹配

Delimiter 内 Group 节点解包

  • AST 序列化时 group 节点包裹 {...},在 \left 后变成 \left({...}\right)
  • KaTeX 将 { 识别为分隔符,导致渲染错误
  • 修复:delimiter 渲染时检测 group 节点,直接展平 children 而非包裹 {...}

🐛 公式修复

  • 洛伦兹变换lorentz-transform):\prime'(ASCII 引号),修复侧边栏渲染
  • 相对论速度叠加velocity-addition):同上
  • 动量守恒momentum-conservation):\prime' 一致性修复

♻️ 数据去重 — 消除 70 个内联重复

  • math greek palette(20 项):从内联副本 → 引用 GREEK_LOWERCASE/GREEK_UPPERCASE 筛选
  • physics constants palette(15 项):从内联副本 → 引用 ALL_CONSTANTS + fromConstant() 辅助函数
  • physics units palette(20 项):从内联副本 → 引用 ALL_UNITS + fromUnit() 辅助函数
  • chem greek palette(15 项):从内联副本 → 引用 @sciexpr/math GREEK_LOWERCASE/GREEK_UPPERCASE

📊 统计

  • 11 个 npm 包 / 26 组件测试 / 全新 6 文件 1,500+ 行
  • 所有包 TypeScript 编译零新增错误

v0.5.1 (2026-07-08)

🔧 代码审计 — 质量修复与优化

🔴 类型系统增强

  • ExpressionNode.kindstring 改为 ExpressionNodeKind 字面量联合类型,提升类型安全
  • 修复 core/parser/renderer 测试文件中 8 个 TS 编译错误(类型缩窄/缺失字段/未使用导入)
  • AI 测试补充 ValidationError.severityIAINormalizerProvider.detectAndFix 字段

🟡 不可变性 & 逻辑优化

  • chem-parser: 消除 AST 节点突变 — charge/chargeSign 改为 createChemElement 重建
  • chem-parser: 化学基团原子计数使用不可变 map 替代 in-place mutation
  • MathML renderer: Script 节点 sub+sup 同时存在时避免重复渲染,改用 if-else if
  • AI Pipeline: 缓存 key 加入 expressionType,避免数学/化学补全错误共享
  • AI Pipeline: eventListeners/emit/offany[]unknown[] 提升类型安全

🟢 代码清理

  • 移除 tokenizer\\ newline 死代码分支
  • Latex renderer: 化学元素 count 从 HO2 修正为 HO_{2}(LaTeX 下标格式)
  • 清理 6 个 Vue composables 中共 20 行未使用的导入

🟡 配置修复

  • tsconfig.json references 补全 math/chemistry 两个遗漏的包
  • Vue tsconfig 新增 env.d.ts 支持 .vue 模块类型声明
  • ShortcutDef.action 改为可选,BUILTIN_SHORTCUTS 移除空函数

✅ 新增测试

  • 19 个 Vue 组件运行时测试@vue/test-utils + jsdom
    • Formula (5) / LivePreview (4) / Toolbar (5) / AutocompleteDropdown (5)
  • JSDoc 注释增强: 6 个核心工厂函数添加 @param / @returns

📊 统计

  • 9 个 npm 包 / 313 个单元测试 + 26 个组件测试 / 9/9 TS 编译零错误

v0.5.0 (2026-07-06)

🎯 M9-M11: 质量保障 → 1.0.0 就绪

🧪 测试增强

  • 📈 测试覆盖率从 70.54% → 87.78%(Statements)
  • 📊 分支覆盖率 82.28%,函数覆盖率 97.00%
  • 🧪 单元测试从 164 → 313 个(+149)
  • ⚡ 新增 22 个性能基准测试(Benchmark)
    • Parser: 简单符号 ~2M ops/s / 化学式 ~1.8M ops/s
    • Renderer: Unicode ~12.9M ops/s / KaTeX ~12.4M ops/s
  • 🎭 新增 Playwright E2E 测试框架

🎮 在线 Demo 站点

  • 🌐 全新 交互式公式编辑器页面(/demo
  • 🧮 实时 KaTeX 渲染预览
  • 🔧 工具栏:分式 / 根式 / 上下标 / 括号 / 希腊字母 / 矩阵
  • 📋 8 组快速预设(二次公式、欧拉公式、勾股定理…)
  • ⌨️ 键盘快捷键(Ctrl+/ 分式、Ctrl+S 根式)
  • 📑 可展开的代码示例(code-group)

🛠️ 工程化

  • ⚙️ VitePress 自定义主题 & FormulaDemo 组件
  • 📦 更新 package.json scripts: test:bench / test:e2e / test:e2e:ui
  • 🎯 覆盖率阈值配置:Statements ≥85% / Branches ≥80% / Functions ≥85%

📊 统计

  • 9 个 npm 包 / 313 个测试 / 22 个性能基准 / E2E 框架

v0.4.0 (2026-07-06)

@sciexpr/presets v0.1.0 → v0.1.1

  • 📐 30+ 数学公式模板 — 微积分 / 代数 / 三角 / 线性代数 / 统计
  • 60+ 物理模板 — 力学 / 旋转运动 / 电磁学 / 热力学 / 量子力学 / 相对论
  • ⚗️ 20+ 化学模板 — 常见化合物 / 经典反应 / 电化学
  • 🧪 离子模板 — 阳离子 / 阴离子检索
  • 🔬 元素预设 — 按周期 / 族检索
  • 🔤 希腊字母预设 — 24 小写 + 11 大写 (含变体)
  • 🔍 按分类/标签/ID 搜索模板

📊 统计

  • 9 个 npm 包 / 164 个测试

v0.3.0 (2026-07-06)

@sciexpr/chemistry v0.1.0

  • 🔬 118 元素完整周期表数据(中/英文名、电负性、氧化态、电子排布、常见化合物)
  • ✅ 化学式验证器(元素符号验证、化学式文本验证、AST 节点验证)
  • ⚖️ 化学反应平衡检查器(元素守恒、物质计数)
  • 🔢 氧化数计算器(常见氧化态、金属/非金属判断、电负性查询)

@sciexpr/math v0.1.0

  • 📐 符号库 — 22 希腊小写 + 11 大写 + 7 运算符 + 19 关系符 + 12 箭头 + 17 杂项
  • 🧮 矩阵工具 — 验证、转置、加法、乘法、标量乘法、2×2/3×3 行列式
  • 📝 LaTeX 生成 — 矩阵/行列式/模板

📊 统计

  • 8 个 npm 包 / 139 个测试

v0.6.0 (2026-07-09)

🎉 @sciexpr/physics v0.1.0

物理常量库 (CODATA 2018)

  • 基本常量: c, h, ħ, G, g, R, Nₐ, k_B 等
  • 电磁学常量: e, ε₀, μ₀, α, Φ₀, G₀, Z₀
  • 原子物理常量: mₑ, mₚ, mₙ, a₀, R_∞, μ_B, μ_N
  • 热力学常量: R, k, σ, M_u, T₀, p₀, V_m
  • 按符号/分类/关键词搜索

SI 单位制与换算

  • 7 个基本单位 + 17 个导出单位 + 8 个非 SI 单位
  • 单位换算(eV↔J, ℃↔K, bar↔Pa, atm↔bar ...)
  • 量纲分析 & 量纲一致性检查

3D 向量运算

  • 点积、叉积、模长、单位向量、夹角
  • 加/减/标量乘
  • 矢量微积分 LaTeX 生成(梯度/散度/旋度/拉普拉斯)

Bra-Ket 量子力学记号

  • 左矢/右矢/内积/模方
  • 含算符期望值、对易子、反对易子

物理公式验证

  • 已知常量检测、物理表达式分析

📊 统计

  • 10 个 npm 包 / 313+ 单元测试 / 26 个组件测试 / 22 个性能基准

v0.1.0 (2026-07-06)

🎉 首个版本

@sciexpr/core v0.1.0

  • 17 种 AST 节点类型
  • 节点工厂、遍历器、序列化器、分类器

@sciexpr/ai v0.1.0

  • 4 个 SPI 接口 + AIPipeline + 4 套 Prompt 模板
  • 内置回退:补全 / 知识库 / 规范化 / 格式化

@sciexpr/parser v0.1.0

  • LaTeX 词法分析器 + 解析器
  • 化学式解析器 + ParserRegistry

@sciexpr/renderer v0.1.0

  • KaTeX / Unicode / MathML / LaTeX 四种渲染器

@sciexpr/markdown v0.1.0

  • markdown-it 插件:$...$ / $$...$$ / \ce{...}

@sciexpr/vue v0.2.0

  • 7 个组件 + 5 个 Composable + Storybook

📊 统计

  • 6 个 npm 包 / 101 个测试 / 7 个 Vue 组件

基于 MIT 协议发布