Skip to content

Template Host Demo

这个示例演示模板页如何消费一个“新生成器链路”生成的 runtime:

  • 左侧只挂载 canvas
  • 右侧只挂载部分参数面板
  • 宿主通过 PanelFilter 控制可见参数
  • 宿主通过 sdk.template.parse() / toRuntimeSnapshot() 消费模板 JSON
  • 宿主可以读取状态并触发导出

在线 Demo

宿主接入最小示例

ts
const runtime = window.__GENERATOR_RUNTIME__
const sdk = GeneratorSDK.init({ appKey: 'your_app_key', env: 'prod' })

const importedTemplate = sdk.template.parse(templateText)
const snapshot = sdk.template.toRuntimeSnapshot(importedTemplate)

await runtime.mount({
  mode: 'embed',
  target: 'canvas',
  container: canvasContainer,
  state: snapshot.state,
})

await runtime.mount({
  mode: 'embed',
  target: 'panel',
  container: panelContainer,
  state: snapshot.state,
  panelFilter: snapshot.panelFilter,
})

这个 demo 验证了什么

  1. 新生成器不需要先依赖老 bridge 才能进入模板页
  2. 模板页不需要复制生成器内部 DOM
  3. 参数面板可以通过 schema 和 filter 裁剪
  4. 模板 JSON 可以通过统一协议恢复状态和参数裁剪规则
  5. 运行时状态可以被宿主读取、局部更新和导出

推荐用法

  • starter-html-runtimestarter-vue-runtime 创建新生成器
  • 先在完整页验证业务逻辑
  • 再用模板页按 embed 模式接入
  • 需要模板作者能力时,用 sdk.template.build() 导出模板 JSON
  • 老生成器改造放到后续兼容治理阶段

MIT Licensed