用途:为宿主页面选择并实现合适的 StackBlitz SDK 嵌入方法,把嵌入内容视为第三方可执行内容,明确加载、持久化、无障碍与浏览器支持边界。
主要能力:embedProjectId 用于已有 StackBlitz 项目,embedGithubProject 用于公开 GitHub 仓库或路径,embedProject 用于生成的内联项目。内联项目默认只存在于浏览器内存,除非用户 fork 到 StackBlitz 账户,不应承诺自动持久化。使用当前 EmbedOptions,不依赖已弃用的 forceEmbedLayout;clickToLoad 可作为同意与性能边界。返回的 VM 实例需明确归属与销毁路径。基于 WebContainer 的嵌入浏览器限制比静态代码回退更严格。
使用方式:先用 Read、Glob、Grep 检查宿主组件、内容来源、CSP、已有第三方脚本与响应式模式;仅用 WebFetch 查阅官方 StackBlitz 文档;确认来源与信任边界后再用 Write 或 Edit。从仓库 lockfile 固定 SDK 版本,按用户旅程定义 height、view、theme、openFile、clickToLoad,添加带标题容器、加载态、错误态及可访问的静态链接或代码回退,并与站点负责人协调 CSP、隐私披露、响应式布局与浏览器支持。测试初始加载、用户触发加载、失败、键盘流程、窄视口与导航清理。
限制:不得嵌入私有仓库、密钥、授权源码或需认证的应用状态;企业源或私有访问需先获得组织配置与安全批准。添加第三方可执行嵌入、修改 CSP、加载私有代码、选择企业源或添加分析前需明确授权。GitHub 项目无法加载时检查公开仓库、分支/标签/提交及可选子文件夹;内联内容消失时说明浏览器内存语义并提供 fork/导出路径;窄布局破坏时使用响应式容器并保留静态回退;CSP 阻止时仅建议官方窄源,不得整体禁用 CSP。