fix(report): draw North Indian charts from fences after skipHtml dropped SVG

Longform report pages kept the D1/D9/Moon and varga headings but skipHtml
stripped the engine's inline SVG. Emit a jyotish-chart JSON fence beside
each SVG and render a diamond chart on the reader without relaxing HTML
sanitization. BUG-607.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-09 15:11:00 +08:00
co-authored by Cursor
parent d5972ef44a
commit 2fdcb14fd6
23 changed files with 2628 additions and 124 deletions
@@ -0,0 +1,40 @@
# 长报告星盘:真实环境走查清单(2026-09-09BUG-607
自动化替代证据见 `tests/test_report_chart_block.py``frontend/tests/report-chart-block.test.ts``frontend/tests/personal-report-markdown-view.test.tsx`。下面每一条都需要一位有真实账号的人在 staging 上对照一份**新生成**的个人长报告。
前置:staging 已部署含本轮改动的 SHA;账号点数足以生成一份个人报告。旧报告(没有 `jyotish-chart` 围栏)不会画出图,这是预期,不要当成回归。
## 1. 22 张图都在
生成一份新报告,打开 `/reports/<id>`,滚完「Birth Chart / Vargas」和「Vargas I」。
- [ ] D1、D9、Moon Chart 标题下各有一张北印菱形图,不是空白。
- [ ] Vargas I 从 D2 到 D60 的 19 个标题下也都有图(含图集里那张 D9)。
- [ ] 图是菱形北印度盘,不是 4×4 方格南印度盘,也不是西洋圆盘。
- [ ] 图下没有第二行标题;`####` 标题就是标题。
## 2. 标签口径
- [ ] 宫内是「日 12°」这种一字中文 + 整数度,不是 `Su` / `☉`
- [ ] 逆行看起来像「土逆 3°」。
- [ ] 每宫角上是 1–12 的星座序号(1=白羊),不是宫位编号 1–12 从上升起算的另一套数(上升宫的数字应等于本命上升星座序号)。
## 3. 暗色主题
- [ ] 系统切到深色:线、字、角标仍然看得见,没有浅底深线或白字溶进纸色。
## 4. 手机与打印
- [ ] iPhone Safari 竖屏:图单列、居中,不撑出左右滚动(宽表除外)。
- [ ] 桌面 ≥720pxVargas I 的图是两列。
- [ ] 打印预览:图仍是单列,不会变成两列挤在纸上。
## 5. 导出 `.md`
- [ ] 点「导出报告(.md)」打开文件:能看到引擎 SVG,**没有** ```` ```jyotish-chart ```` 代码块。
## 6. 旧报告
- [ ] 打开一份 09-06 之后、本修复之前生成的报告:标题还在,不报错,不出现「图盘数据无效」(因为根本没有围栏块)。图可以没有。
未打勾的项写成「未验证」。发现南印度方格、空白标题、导出文件里大段 JSON,或暗色主题下图看不见,把现象和报告页截图贴回。