这是 Web Device layout component,不是 AUP primitive,不是 AUP Web-only widget,也不是 Markdown 指令。
Default theme 包:providers/runtime/web-device/themes/default/components/access-gate/(manifest.json + render.js + style.css)。经 layout 组件解析链(runtime surface → theme → 可选 site override)。SiteServer 在被拒绝的详情里把它挂到正文槽;不要自己写进 layout.aup。
用途
第一屏试读下方的截止(preview: false 时单独出现)。标题留在 post-hero。这个组件是那条线、那句说明,以及登录动作。
边界
- 不要把它写成 AUP primitive,也不要放在
docs/aup/primitives/下。 - 不要在本页混写其它 layout component 的合同。
- 作者可见合同以 manifest props 为准;发明的 props 不可移植。
- 组件不会收到受保护正文。
excerpt只是已声明的公开字段。 - manifest 上的
seoStrategy是none。受限页的noindex由 SiteServer 强制,不在这里。
作者入口
不是手写的 layout.aup section。运行时在 decideWebAccess 返回 preview-shell 或 promo-shell 之后解析 access-gate。
常见 props(来自 manifest):kind、requiredRole、excerpt、loginHref、signInLabel、message、signedIn。
| Prop | 取值 / 默认 |
|---|---|
kind | preview-shell 或 promo-shell |
requiredRole | 调用方缺少的角色 |
excerpt | 声明的 excerpt。页面上已有试读时为空 |
loginHref | 默认 /.well-known/service/login。现场页会带当前路径的 return_to 与 cancel_to |
signInLabel | 默认 Sign in(locale 文案由 SiteServer 提供) |
message | 默认:preview → The rest of this piece is for {role}.;promo → This piece is for {role}. 具名角色 member / admin / owner 变成 members / admins / owners。其它字符串原样显示;缺角色 → signed-in readers |
signedIn | true 时去掉登录按钮 |
若主题包缺失,packages/core/src/blocklet/web-access-gate.ts 里的 renderAccessGateMarkup 输出同一套 markup。
表面
被拒绝的内容详情的 layout 正文槽。不是 document Markdown 指令表面。
公共状态
released
Fallback
缺包 → 核心 markup。缺 loginHref → /.well-known/service/login。signedIn: true → 无按钮。
Sample
本页无独立 docs-safe live mock。合同由站点 chrome 里被拒绝的内容详情证明。未登录打开任意一篇 access 高于调用方、且仍在列表里的记录。
现场匿名 HTML(ARC 2.0.0-beta.35,2026-08-15):
<aside class="access-gate" data-kind="promo-shell" data-required-role="admin">
<div class="access-gate-rule" aria-hidden="true"></div>
<p class="access-gate-message">The rest of this piece is for admins.</p>
<p class="access-gate-action">
<a class="access-gate-signin"
href="/.well-known/service/login?return_to=%2Fen%2Farticles%2Faccess-fixture-team%2F&cancel_to=%2Fen%2Farticles%2Faccess-fixture-team%2F">Sign in</a>
</p>
</aside>省略 preview 时 data-kind 仍是 promo-shell。因为存在试读,可见文案用 preview 措辞。
证据
| 项 | 路径 |
|---|---|
| Theme 包 | providers/runtime/web-device/themes/default/components/access-gate/ |
| Manifest | …/access-gate/manifest.json |
| Renderer | …/access-gate/render.js |
| 样式 | …/access-gate/style.css |
| Fallback markup | packages/core/src/blocklet/web-access-gate.ts(renderAccessGateMarkup) |
| 挂载 | providers/runtime/web-device/src/site-server.ts |
| 内部矩阵 | docs/aup/capability-matrix.md §3(内部,不对外路由) |
| 矩阵行概念 | layout-component · access-gate |