任务: 在页面下声明具名 content source,再作为完整 $source.<name> 传给 layout section。字段级合同在 reference 与单元页。
结果
pages/<page>/sources/<name>(+ 可选.sort/.limit/.filter)layout.aup中某 section 的顶层 prop 是完整$source.<name>绑定- 未声明绑定与空结果可诊断
步骤(只链出)
- 先知道 content 对象是什么:内容对象、元数据与 locale。
path/sort/limit/filter与空态写作指南:把内容绑定到页面。- 字段与诊断参考:Source 绑定参考。
- section 在页面中的位置:组合页面与布局 · AUP 布局边界。
常见接收 $source 的规范单元
| 消费角色 | 单元页 |
|---|---|
| 卡片列表 | content-card |
| 相关阅读 | related-content |
| 活动卡片 | event-card |
| 标签 | tag-list |
| 站点 editorial feed(站点包) | site editorial-feed |
| 站点 period index(站点包) | site period-index |
items、emptyText、variant 等 props 打开对应单元页。本 recipe 不复制那些表。
绑定规则(仅指针)
| 规则 | 规定位置 |
|---|---|
section 顶层 prop 使用完整 $source.<name> | 把内容绑定到页面 |
source path 留在 /content/<type>/ 下 | Source 绑定参考 |
未声明名 → source-binding-undeclared(检查运行时) | 同上 + 诊断站点 |
| 合法零结果的组件空态 | 你选用的 layout component 单元页 |
AUP 数据列表(另一条路径)
交互式 AUP app 常用 afs-list primitive 列 AFS 数据,而不是 Web Device 的 $source 文件:
- Primitive 合同:
afs-list - 列表变体演示:Showcase 映射(
list-basic、list-pagination等)
不要把 $source(Web Device 内容查询)与 afs-list(AUP 树 / session 数据)混成一条合同。