بنقرة واحدة
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 |