XD inventory 用于在提取之前清点并检索 Adobe XD 设计中的节点,回答“这个设计里有什么”以及“我想找的是哪个节点”。
用途:对一份设计做盘点,列出画板与顶层节点信息,便于在导出前确认目标对象,而不是直接提取全部内容。
主要能力:
- 支持三种来源:Adobe XD 分享链接(https://xd.adobe.com/view/...)、.xd 文件,或由 xd redact 生成的 document.json。
- 每个条目包含:画板、名称、类型(group、shape 或 text)、bbox(画板坐标系内的 x,y 与宽高,含描边一半)、dominantColor(面积最大的纯色填充)、shapes(图形数量)和 warnings(如 skipped-text、unsupported-fill:gradient 等警告码)。
- 支持按画板过滤、按名称子串(不区分大小写)检索、按颜色检索(优先匹配最接近的主导填充)。
- 支持生成 HTML 预览(默认展示前 60 个匹配项,转换规则与 extract 一致),供用户可视化选择。
使用方式: 需要 Node >= 22。基本命令为 npx -y xd-extract inventory <source> --json。常用形式包括:全量 JSON 输出、全量可读输出、指定画板(--artboard "<name or id>")、按名称检索(--find cart)、按颜色检索(--find "#ff9c29"),以及生成预览文件(--preview /tmp/xd-preview.html)后打开查看。
适用场景:在导出某个节点前先定位并确认它;在大设计中按名称或颜色缩小范围;通过预览让用户直观选择目标。
限制与注意事项:
- 带 unsupported-fill:* 警告的节点无法忠实提取,选择前应告知用户。
- pasteboard 画板用于存放不属于任何画板的零散对象,图标有时位于此处。
- 颜色检索只匹配主导填充,主填充为白色的节点不会匹配其强调色,此时应改用名称检索或预览。
- 若链接是仅含位图的原型,工具会以 NoVectorPayload 停止,此时没有可列出的内容,需告知用户。
- 不要将大型设计的完整清单粘贴到对话中,应使用 --find 或 --artboard 过滤后展示简短表格。
- 导出所选节点需继续使用 xd-extract-svg 技能。