원클릭으로
adjust-list-layout
根据vlm_result.json识别 JSON 文件中的列表控件,并调整 HTML 代码中的布局结构,使其更符合语义化和响应式布局要求。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
根据vlm_result.json识别 JSON 文件中的列表控件,并调整 HTML 代码中的布局结构,使其更符合语义化和响应式布局要求。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
控件分类。根据vlm_result.json中的控件类型,给index.html中的数据打上类型标记
将设计稿/HTML 转为 Android Kotlin 原生代码的规范与检查清单。包含文件结构、样式与语义化命名、交互与循环渲染、验证项。
将设计稿/HTML 转为 iOS Objective-C原生代码的规范与检查清单。包含文件结构、样式与语义化命名、交互与循环渲染、验证项。
将设计稿转换后的 index.html 文件转换为目标平台代码(H5/React/Vue),包括样式抽离、语义化命名、交互实现和循环渲染支持。
将 HTML/Web 设计稿转换为 React Native 代码,包含文件结构、StyleSheet 样式、语义化命名、交互状态与循环渲染。在用户要求将 Figma/HTML 转成 React Native 或进行 RN 代码转换时使用。
| name | adjust-list-layout |
| description | 根据vlm_result.json识别 JSON 文件中的列表控件,并调整 HTML 代码中的布局结构,使其更符合语义化和响应式布局要求。 |
根据 JSON 布局描述文件识别列表控件类型(横向、纵向、网格),并自动调整 HTML 代码中的布局结构。
vlm_result.json 等布局描述文件,需要据此调整代码结构时| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
json_file | string | vlm_result.json | JSON 布局描述文件路径 |
code_file | string | index.html | 需要调整的 HTML 代码文件路径 |
${json_file} 是否存在(可选,不存在则跳过 JSON 相关步骤)从 ${json_file} 中找出列表控件,判断条件如下:
| 列表类型 | 判断条件 |
|---|---|
| 横向列表 | 子元素的 y 和 height 一致;或者两组交错 y 和 height 一致的元素交错排列 |
| 纵向列表 | 子元素的 width 和 x 坐标都一致;或者局部连续的元素 width 和 x 坐标相同,且子元素的结构相似 |
| 网格列表 | 子元素 height 相同,存在多行,同行 y 坐标相同 |
遍历列表控件,在 ${code_file} 中进行控件匹配:
${code_file} 中一个容器,其包含的文本大部分都能与横向列表元素匹配成功${code_file} 中一个容器,其包含的文本大部分都能与纵向列表元素匹配成功将原始 ${code_file} 备份为 ${code_file}.backup,然后修改 ${code_file} 调整布局。
| 子类型 | 处理方式 |
|---|---|
| 交错列表 | 将 ${code_file} 中相邻的交错元素用一个新容器进行包裹和分组,变成标准横向列表 |
| 带分割线列表 | 如果横向列表元素中包含垂直分割线,且分割线和其他元素间隔分布,则将分割线提取出来,剩余的元素包裹容器宽度进行等分,内部元素垂直居中 |
如果 ${code_file} 中的局部纵向列表元素未被包裹,用一个新容器将这些元素包裹起来。
⚠️ 必须按顺序判断
如果 ${code_file} 中每一行的文本匹配到的容器都不一样,将这些容器合并成一个大的网格布局:
| 判断顺序 | 类型 | 条件 | 处理方式 |
|---|---|---|---|
| 1 | 表格 | 行列元素间距都 ≤ 2px,且同一列的元素宽度相同(误差 ≤ 1px) | 不要用flex-wrap: wrap布局,改成 <table> 结构 |
| 2 | 折行布局 | 不满足表格条件(不同列元素宽度不一致) | 采用 display: flex; flex-wrap: wrap,并计算设置 row-gap 和 column-gap |