xmmath 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +6 -4
- package/dist/xmmath.es.js +458 -433
- package/dist/xmmath.es.js.map +1 -1
- package/dist/xmmath.umd.js +4 -4
- package/dist/xmmath.umd.js.map +1 -1
- package/package.json +1 -3
- package/readme.md +3 -2
- package/src/main.ts +108 -44
package/AGENTS.md
CHANGED
|
@@ -10,13 +10,15 @@ symbols和emoji与上游同步到0.15.1,src语法解析渲染与上游同步
|
|
|
10
10
|
|
|
11
11
|
火狐浏览器渲染的mathml不错,其他浏览器多少有细节问题
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
测试分层:语料 test/fixtures/math.json(412 例)由各阶段单测 test/{ast,normalize,vdom,render}.test.ts 跑(含全语料跑通断言,会抛错的用例在其条目上标 `knownBroken: true`,_shared.ts 从字段派生豁免清单,修好后测试反过来变红逼你摘标记);test/custom.test.ts 是手工维护的针对性断言(已知缺陷用 it.fails 占位)。渲染结果不存快照——回归靠 review 页「变更」标签现场跑 HEAD 版与工作区版对比(见下)。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
math.json 手工维护,不再有生成脚本(get.mjs 已删):新增调试用例直接往里加,`id`/`cat` 都可自定义(id 可以写长描述,撞 id 由 review 页顶部警告);需要跟上游同步时,去 typst 官方 git 看 tests/suite/math 的变更记录,手动把新式子摘进来(test/typst/math/ 里留着上次抽取的上游 .typ 原文,可作比对参考,该目录已 gitignore)。
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
pnpm review 打开 test/review/index.html,只做对照不记录反馈:每例并排显示本库渲染与 typst 官方 PNG;「自定义」标签是临时输入对照,要长期钉住就写进 test/custom.test.ts;「变更」标签现场 import git HEAD 版 src 与工作区版,同一语料各渲染一遍逐例比输出(结果不入库,每次进页现算,服务端 /__review/base 负责把 HEAD 的 src/ 导出到 cache/base/<sha>/)。typst 图按 hash+typst版本缓存在 test/review/cache/(不进 git),版本固定在 test/review/config.json,默认 0.11.1(与 src 的 version.lan 一致;改版本会让缓存全部失效重渲染)
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
加 `?oldtypst=<版本>`(如 0.15.1)后每例会多渲一张该版本的 typst 图,浏览器用 canvas 比两图像素:整图 hash 判有无差异,有差异再给差异像素占比与尺寸差;侧栏「仅 typst 版本差异」可过滤,「预生成本列表 typst 图」会把两个版本都预渲染
|
|
20
|
+
|
|
21
|
+
改动语法与渲染,怕影响其他用例 → pnpm review 的「变更」标签(HEAD vs 工作区,现场算)逐例看旧渲染/新渲染/typst 官方图;发现其他受影响的用例劣化就回去改代码,下一轮循环会覆盖。测出的行为差异要长期钉住就写进 test/custom.test.ts 的断言
|
|
20
22
|
|
|
21
23
|
语料里有一批 typst 自己也拒绝编译的用例(..args 展开、未定义变量、故意不配对的分隔符、旧符号名),不同版本失败集合不同,对照时按「官方无输出」处理
|
|
22
24
|
|