# Expo 图片收藏布局

> Expo 选择相册页面包、可选资源元数据、共享外观与独立图片序列的理由。

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

> [!NOTE] OINK 1.3.0 新增
> Expo 随 OINK v1.3.0 提供。

## 背景 {#context}

Docs 组织说明，Blog 组织文章，Book 组织章节。图片收藏需要相册、紧凑的概览，
以及逐张查看完整原图的方式，不需要把每张图片都变成一篇文章。

初始 Graph 收藏包含 149 册、7,658 张原图。独立副本提供了混合尺寸、长图、GIF、
藏注和已有图片锚点等真实输入。逐图创建内容文件会增加创作负担，却不能改善这份
收藏的导航。

## 选择 {#decisions}

一个相册对应一个 Hugo 叶子页面包：`index.md` 加 `images/`。文件名提供默认标题，
作者需要时再在相册 front matter 中补充原生 `resources` 元数据。不要求逐图创建
Markdown、YAML、数据库或清单。这降低了起步成本，同时支持简介、排序、署名、
显式 ID 和独立原图。重命名文件会改变默认锚点；需要长期引用时应提供显式 ID。

Expo 是一种布局，与 Paper、Slate、Ink、Terminal 和明暗模式相互独立。它复用
外壳导航、外观控件、共享媒体结果，以及现有颜色、排版与圆角变量。已有 `gallery`
围栏仍可用于普通文字页面。

三个单选格选择展墙、卡片或无缝显示，后接播放控件与常驻尺寸滑杆；读者选择跨相册保存。
外观设置放在导航中，相册页省去文章操作菜单。图标减少界面
上的可见文字，但键盘与辅助技术用户仍需要本地化的无障碍名称和提示。

根据维护者 10 月 13 日的修订，GIF 默认播放。暂停控件和系统减少动态效果设置
提供静态替代。这会增加动图相册的传输量；图片采用懒加载，大型收藏仍由作者分册。
自动资源分页不属于本版本范围。

查看器从原尺寸开始，仅在超出可用区域时缩小。放大至适屏按更受约束的一边计算，
始终完整容纳图片；手动缩放支持细节查看与长图滚动阅读。
原图链接与相册定位链接保留访问和引用能力。相册序列归属 Expo 按需加载的脚本，
普通 Image Zoom 保持原有单图行为。查看器使用原生模态对话框，不增加灯箱依赖。
没有 JavaScript 时，原图链接和说明仍然可用。

HTML、Print、Markdown、LLMSFULL、RSS 和相册封面共享同一个图片解析器。
静态格式保留图片内容和元数据，不依赖查看器脚本，代价是需要与可视布局同步维护
这些输出。

## 验证与归属 {#validation-and-ownership}

主题拥有 `expo/items.html`、布局、按需运行时、`check-expo.py`、几何测试与生成式
schema 投影。兄弟文档站拥有[双语示例](/expo/)、`tests/browser/expo.spec.mjs`，
以及桌面、手机、无障碍、外观和输出检查。

Graph 副本提供额外的大型真实内容证据。验收核对了全部 7,658 张原图的哈希、
稳定相册锚点，以及未改动的源目录。构建输出、截图和个人图片数据位于这些源码
仓库之外。本地验收、公开模块标签、消费站升级和部署是不同的完成状态。

---

反链：

- [设计](/zh/docs/design/)
- [决策](/zh/docs/design/decisions/)
- [Expo](/zh/docs/design/expo/)
- [Expo 相册](/zh/docs/write/expo/)
