SuperAPI AI 工具集

iblai-api-studio-html

前端与建站

查看项目

更新于 10-16 05:56

技能介绍

用途:在 Open edX Studio 的单元(vertical)中创建和编辑 HTML 文本组件,即课程中供学员阅读的 HTML 内容。每个组件通常两次调用:先创建空块,再写入正文与标题,无需在编辑器中反复操作。

前置条件:先运行 node .claude/skills/iblai-api-studio-auth/scripts/studio-login.mjs --check 确认登录(输出两个 ok),否则先执行 /iblai-api-studio-auth;需要来自 /iblai-api-studio-unit 或 /iblai-api-studio-outline 的单元定位符;若引用图片或文件,需先上传(POST /assets/{course}/)并使用其 /static/… 路径。

认证与约定:基址为 $STUDIO_URL,会话 Cookie 来自 studio.env(值为单引号包裹,解析时需去掉引号,否则 Studio 返回 500)。常用请求头包括 X-CSRFToken、Origin、Referer、Accept 与 Content-Type: application/json。

主要操作:GET /xblock/{html} 读取块详情;GET /api/v1/ibl/xblock/get-details?locator=… 获取轻量详情;GET /api/contentstore/v1/container/vertical/{unit}/children 列出单元内组件顺序。写入方面,POST /xblock/ 以 parent_locator 与 category: html 创建空块并返回 locator;POST /xblock/{html} 用 data 整体替换正文、metadata 合并标题;POST /xblock/ 配合 duplicate_source_locator 可复制到同一或另一单元;DELETE /xblock/{html} 删除(破坏性操作,需先与用户确认)。内容在单元发布前为草稿,更新已发布块会使单元 has_changes 为 true,需重新发布。

编写规则:每个组件用单个 section 或 div 包裹,使用内联 CSS 实现标注框、卡片网格、表格、步骤列表等样式;不要覆盖 LMS 掌管的字体、字号、行高、正文颜色与组件宽度,不使用 style 块、script、html/head/body;标题层级用 h3/h4/h5,不用 h1/h2;图片需设 alt,视频用 iframe,外链加 target="_blank" rel="noopener";组件体积控制在约 30 KB 以内,超长内容拆分;LaTeX 由 MathJax 渲染。

限制:display_name 未设置时默认为 Text,建议每个块都设标题;Studio 原样存储所发 HTML,需自行校验片段合法性;除 announcement.yaml 外的 boilerplate 名称未经验证,未知名称会静默创建空块。