需要精确位置时看本页。它是当前目录读取合同,不代表每个历史站点都已经迁移到这一形状。
站点根目录
| 路径 | 职责 |
|---|---|
.route/web | 声明 blocklet 为本地或已发布 runtime 提供 Web entry |
.web/site.yaml | 站点级标量配置:locale、SEO、template/theme 值及相关设置 |
.web/tokens.json | 浅色/默认 design token 与可选 dark 覆盖 |
.web/redirects | 独立的逐行 redirect rule 文件 |
.web/template/logo.svg | 站点 logo asset |
.web/components/<name>/ | 可复用的站点呈现 component |
.web/themes/ | 本地 theme material;它和 shared-library fallback 有独立的优先级规则 |
layouts/<name>.aup | 由内容对象 front matter 的 layout: <name> 选择的 named object layout;它不会产生 route |
页面
| 路径 | 职责 | ||
|---|---|---|---|
pages/index/ | 首页 entry point | ||
pages/<name>/layout.aup | 默认页面 layout source | ||
pages/<name>/layout.<locale>.aup | 只有 layout 确实不同才使用的 locale-specific source | ||
pages/<name>/seo/title / description | 默认页面 metadata | ||
pages/<name>/seo/title.<locale> / description.<locale> | locale-specific 页面 metadata | ||
pages/<name>/sources/<source> | 该页面 scope 的内容 source path | ||
| `pages//sources/ | .limit | .filter` | 可选的 source selection control |
layout 的读取顺序为 locale AUP、默认 AUP、locale JSON、默认 JSON、再到 convention/default layout。新 source 应使用 AUP 形式,除非已核验的兼容消费者要求 JSON。
内容对象
| 路径 | 职责 |
|---|---|
content/<type>/<slug>/content.md | 默认读者正文与 front matter |
content/<type>/<slug>/content.<locale>.md | locale-specific 正文 |
content/<type>/<slug>/layout.aup | 对象确实需要时的 object-specific layout |
content.md 与兼容的 index.md 同时存在时会优先。front matter 的 metadata 优先级高于 sibling field file。一个对象只能选择自己的 layout.aup 或通过 layout: <name> 选择 layouts/<name>.aup,不能同时使用。正文与对象身份应留在这里,不要复制到页面 layout。
locale support 文件
.aup/locales/*.json 可以提供兼容 locale fallback。新的 multi-locale site 应在 .web/site.yaml 显式声明 locale 和 locales,随后把 locale variant 放在被覆盖的事物旁,而不是复制整棵目录。