Files
endorphin-tabularium-docs/content/docs/03-figures.md
codex-bot bd932c36b2
Verify and deploy Tabularium / verify-and-deploy (pull_request) Failing after 5m44s
Add a compressed illustration carousel with slide indicators
2026-10-28 18:16:17 +08:00

2.6 KiB

图形与脚本

Python 绘图项目位于 tools/figures,使用 drawsvg 输出可编辑 SVG。脚本与输出都保留在 Git 中。

pnpm figures

下图是制图工作流的最小示例,用于验证从 Python 源码到文档图片的完整链路。

制图工作流:Python 源码生成 SVG,再由本地文档引用

扩展方式

在 tools/figures/src/endor_figures 下保留各张图的生成逻辑,并在 CLI 中调用。输出目录通过源码位置计算,不依赖运行命令时所在的目录。

CI 会重新生成图片并检查与提交版本一致。Python 依赖保留独立缓存,不进入生产运行镜像。

图形应使用本地字体与资源,并明确标注草案状态。未来可按具体需求加入自动布局或 TypeScript SVG 工具。

位图默认发布压缩版本

SVG 保留可编辑矢量格式;漫画、照片等位图的原始 PNG、JPEG 放在 tools/figures/assets,不放进 public。浏览器只使用生成的 WebP,正文、点击放大和图片适应屏幕都使用同一个压缩地址。

共享策略位于 content/image-policy.json:默认最大宽度 1600 像素、WebP 质量 82、每张图最多 192 KiB,不放大小图。修改策略后重新生成并检查公式、细线和小字是否清晰。

以下涉及图像编码与构建产物生成的命令在已确认的远程 CI/CD runner 上执行;未获明确许可时不在用户本机运行。

pnpm --filter @endor/docs images
pnpm --filter @endor/docs test:images

原图相对 tools/figures/assets 的路径会映射到 apps/docs/public/figures 下同名的 .webp。例如 endor-review-gate.png 对应 /figures/endor-review-gate.webp。文档只嵌入后一个地址,制作原稿不随网页发布。

远程生产构建会运行压缩脚本;CI 先生成 WebP,再重新编码核对产物与原稿、策略是否一致。WebP 是构建派生文件,不必在本机生成或提交;Git 保存原稿、制作记录与共享策略。检查同时拒绝公开目录里的原始位图及 Markdown 图片或 HTML img 直接引用的原始 PNG、JPEG。SVG 无需转成位图,仍按前述流程提交可编辑输出。

同一位置切换多张配图

把两张或更多 /figures/endor- 图片写在同一段,中间换行但不插入空行,正文会将它们呈现为图组。左右按钮和键盘左右方向键可以切换,下方圆点表示当前图片,也可点击直接选择。图片保留点击放大能力。

图组一次只挂载当前图片,切换后才加载下一张压缩图,不预先下载整组原图。