用途:把从 PSD 导出的 JSON 图层树与切片图片转换成静态 HTML/CSS 预览,并可同时生成组件代码。
主要能力:默认生成 HTML 预览并保留 PSD 的分组嵌套结构;使用 --flatten 时所有图层平铺到 canvas,采用绝对坐标。支持生成 React 组件(JSX + CSS Modules)和 Vue 组件(单文件组件 SFC)。通过 --preserve-names 可在 React 组件中保留 PSD 原始图层名作为类名;--dict 可指定项目级图层名翻译字典;--copy-all 复制全部图片;--include-text 把文字图层渲染成 div 标签,直接读取 JSON 中的文本内容和样式,而非寻找切片图片。
用法: 仅生成 HTML 预览: py -3 scripts/generate_preview.py --json /path/to/layer-tree.json --images /path/to/images --out /path/to/preview 生成 HTML 预览与 React 组件: py -3 scripts/generate_preview.py --json /path/to/layer-tree.json --images /path/to/images --out /path/to/preview --generate-react --component-name MyComponent --preserve-names 平铺模式: py -3 scripts/generate_preview.py --json /path/to/layer-tree.json --images /path/to/images --out /path/to/preview --flatten 必需参数为 --json、--images、--out。
JSON 期望结构:节点含 name、kind(group|pixel|type)、visible、bbox、children;脚本用 bbox 定位,按名称匹配图片文件(layer-name 对应 layer-name.png,也支持 .jpg/.jpeg/.webp)。
输出结构:仅预览时输出 index.html、styles.css 和 images/;生成组件时另含 react-component/(index.jsx、index.module.less、images/)。
限制与说明:图层找不到匹配图片时会跳过,除非开启 --include-text;JSON 根节点为数组时使用第一个含 bbox 的节点作为画布;默认只复制匹配到的图片。默认模式便于维护和后续调整,平铺模式适合快速验证但不便于维护。价格、平台等信息暂未提供。