将博客文章呈现为画廊
本决策记录正式发布的博客画廊视图及其兼容边界。
外壳契约定义行为; 设计博客介绍阅读体验; 创作指南提供配置方法。
背景
有些博客栏目更适合通过封面浏览。现有的水平条目、卡片和表格都优先呈现文章 信息。Expo 已有展墙几何算法,但其相册资源模型与图片查看器面向另一种内容 和点击目的地。
决策
画廊作为第四种 blog_index 形态,沿用其他博客视图的分页结果和特色图片
解析器。文章保留 URL 与元数据,作者无需在相册清单里重复登记。
共享 Expo 的行布局算法与控制样式,博客运行时和读者偏好则独立维护,因为
博客封面点击后进入文章。wall、cards、seamless 是画廊内部的排布选择,
外层视图切换器负责选择四种博客形态。
封面在限定比例的格子中完整显示,接受极端宽高比产生的留白。窄屏进一步限制 格子比例,给描述保留可读宽度。触屏文字显示在图片下方,并计入行高;桌面 键盘聚焦显示说明。没有封面时仍保留文章入口;禁用 JavaScript 时,网格仍 显示标题和描述。
影响
开启视图切换会输出四种形态的标记。隐藏视图使用延迟加载,但生成缩略图仍 需要构建时间。作者可以关闭切换,只输出选中的形态。这项改动不引入远程图片 服务或新的浏览器库。
主题的博客栏目索引负责自动集成。自定义首页和术语页模板需要显式渲染画廊 及其控件;站点配置不会替换自定义模板。
验证与归属
主题的 bin/check-shell.py 检查文章顺序、分页、外部链接、缺失封面与无效
配置回退。配置 schema 跟随主题默认值和解析器;运行时测试检查四种视图的
循环切换与偏好恢复。
文档站的 tests/browser/blog-gallery.spec.mjs 使用中英文合成内容承担浏览器
验收,覆盖排布切换、调整宽度、独立偏好、键盘导航、触屏文字、图片加载失败、
禁用 JavaScript 与画廊无障碍。