$npx -y skills add balabalabalading/huuuuuuho-skills --skill ardot-create-new-file强制性前置条件 — 每次调用 create_new_page 工具之前,必须先调用此技能。 未经加载此技能,绝不能直接调用 create_new_page。 当用户想要在 Ardot 设计文件中创建新页面时触发。 关键词:在 Ardot 上下文中的"创建新页面"、"添加页面"、"新画布"。
| 1 | # ardot-create-new-file — 创建新 Ardot 页面 |
| 2 | |
| 3 | 处理 Ardot 设计文件中的页面创建。轻量级前置技能,确保正确的页面 ID 追踪和编辑器状态管理。 |
| 4 | |
| 5 | ## 工作流程 |
| 6 | |
| 7 | ### 第一步:确定页面名称和位置 |
| 8 | |
| 9 | 根据用户意图决定描述性页面名称: |
| 10 | - `"Components"` — 用于可复用组件库 |
| 11 | - `"Light Mode"` / `"Dark Mode"` — 用于特定主题的页面 |
| 12 | - `"Screens"` — 用于设计原型 |
| 13 | - 如果新页面需要出现在特定现有页面之后,使用 `leftPageId` |
| 14 | |
| 15 | ### 第二步:调用 create_new_page |
| 16 | |
| 17 | ```json |
| 18 | create_new_page({ |
| 19 | "name": "Components", |
| 20 | "select": false |
| 21 | }) |
| 22 | ``` |
| 23 | |
| 24 | **默认使用 `select: false`** — 这会创建页面但不切换编辑器焦点,允许你继续在当前页面工作。 |
| 25 | |
| 26 | 仅当你需要立即切换到新页面进行后续操作时,才使用 `select: true`。 |
| 27 | |
| 28 | ### 第三步:记录返回的 pageId |
| 29 | |
| 30 | 响应包含新页面的 ID。**立即保存** — 这是后续跨页面写入和交接时最可靠的 pageId 来源。 |
| 31 | |
| 32 | ``` |
| 33 | 响应示例:pageId = "3:1672" |
| 34 | ``` |
| 35 | |
| 36 | 使用此 pageId 进行: |
| 37 | - 跨页面 `I("3:1672", {...})` 操作 |
| 38 | - `M("nodeId", "3:1672")` 将节点移动到此页面 |
| 39 | - `batch_read({parentId: "3:1672"})` 读取此页面内容 |
| 40 | |
| 41 | ## 重要说明 |
| 42 | |
| 43 | - **pageId 发现受限**:不带 nodeIds 的 `batch_read({})` 只返回当前上下文的内容,不能作为全文件页面枚举依据。 |
| 44 | - **在创建时记录页面 ID** — 这是最可靠的交接方式;必要时也可以读取已知 pageId 或已知节点 ID。 |
| 45 | - **`select: true`**(默认值)会将编辑器切换到新页面。如果你正在跨多个页面构建,这可能会中断你的工作流程。 |
| 46 | - **`leftPageId`** 允许在特定兄弟页面之后插入新页面,有助于维护页面顺序。 |
| 47 | |
| 48 | ## 跨页面操作参考 |
| 49 | |
| 50 | 一旦你记录了页面 ID: |
| 51 | |
| 52 | | 操作 | 方法 | 示例 | |
| 53 | |------|------|------| |
| 54 | | 在特定页面创建 | `I("pageId", {...})` | `I("3:1672", {type: "FRAME", ...})` | |
| 55 | | 移动节点到页面 | `M("nodeId", "pageId")` | `M("3:544", "3:1672")` | |
| 56 | | 读取页面内容 | `batch_read({nodeIds: ["pageId"], properties: ["children"], readDepth: 1})` | `batch_read({nodeIds: ["3:1672"], properties: ["children"], readDepth: 1})` | |
| 57 | | 截图页面内容 | `capture_screenshot({nodeIds: [...]})` | 通过节点 ID 跨页面 | |