# MathJax 配置资产 — 本地测试沙盒

本目录用于在 **harness 仓库内** 本地验证 `mathjax-config.js` 与 `wrap-display-math.R` **配对资产**。产物与运行环境不提交 Git。

## 快速开始

```powershell
cd D:\github\harness\js\mathjax\test

# 一键自动化验收（L0 + L2 + bundle + 负向 render）
Rscript Rscript/run-check-all.R

# 或分步：
# L0：单元测试（当前 R 会话）
Rscript Rscript/test-wrap-display-math.R

# L1：单模块（独立 R 进程，推荐）
Rscript Rscript/run-module.R mod-display-core

# L2：正向模块冒烟
Rscript Rscript/run-all-modules.R

# remark class 结构性用例（手动浏览器检查，非 L2 必过）
Rscript Rscript/run-module.R mod-inline-remark-classes
Rscript Rscript/inspect-remark-classes.R
```

## 文档

完整规程、用例矩阵与防污染规则见 [xaringan-display-math-test-guide.md](xaringan-display-math-test-guide.md)。

通用工作流见 [docs/harness-asset-validation-workflow.qmd](../../docs/harness-asset-validation-workflow.qmd)。

## 迭代原则

1. 调试时**只改** `test/js/` 与 `test/Rscript/` 镜像，L1 全绿后再晋升 `../mathjax-config.js` 与 `../wrap-display-math.R`。
2. 每个 L1 模块通过 `run-module.R` 在**新 R 进程**中 render，输出在 `output/modules/<模块名>/`（已 gitignore）。**产物为完整包**：`<名>.html` + `libs/` + `js/mathjax-config.js` + `mycss/xaringan-mod-test.css`（含 `.red` 与分栏辅助样式）。
3. 负向用例仅在 `mod-negative-no-hook.Rmd` / `mod-negative-no-beforeinit.Rmd` 中运行，勿与正向模块在同一 R 会话内连续 knit。
4. 每个用例在幻灯片中成对出现：**`(raw source)`**（源码）与 **`(result view)`**（实际渲染），详见测试指引 §1.4。
5. 填写测试记录：复制 `TEST-LOG.example.md` → `TEST-LOG.md`（本地，不提交 Git）。
