- docs/consultant-review/: review brief, per-batch post dumps (01-10), audit-tracker.json + AUDIT-TRACKER.md generated by scripts/manage_review.py - scripts/manage_review.py: list/approve/approve-batch/generate over the tracker - docs/consultant-review-2026-10-27-posts-and-casestudies-plan.md: locked decision register + 4 work orders for the /posts/ archive rework and the case-studies portfolio treatment
6.1 KiB
6.1 KiB
博客升级执行计划:/posts/ 归档重构与 Case Studies 作品集化
记录时间:2026-10-27
归档状态:已锁定,待下个会话/回合指令开工
顾问裁定依据:
- 第一轮:《关于 Hoelee Enterprise 技术博客的整体评审与升级建议》
- 第二轮:《关于 Case Studies Banner 尺寸与 Posts 筛选交互的补充裁定》
一、核心决策与交互规范(Decision Register)
1. /categories/case-studies/ 作品集化
- Hero 架构:桌面端采用左右分栏紧凑 Hero(左侧文本 + 右侧视觉)。文字必须使用语义化 HTML,严禁将标题或文字烧入图片;移动端自然堆叠。
- Banner 视觉规格:
- 比例约 21:9 至 3:1(内容区 900px 下,目标显示高度控制在 240–300px,避免占用过多首屏空间)。
- 圆角:8–12px,克制。
- 视觉意象:展示 3 台生产宿主(Unraid / Synology / VPS)、Docker、Prometheus 监控、网络链路与自动化流向;配色遵循暗调终端灰绿 + 暖铜低饱和点缀。
- 案例排序与内容组织:
- 弃用单纯时间倒序,顶部优先展示 3–4 篇旗舰案例(生产基础设施规模、本地 AI 工作流、端到端自动化)。
- 卡片突出解决的痛点与量化成果指标(如
3 Hosts · 162 Containers)。
- 行动入口(Affordance):
- 卡片保持整卡可点,摘要末尾增加小型文字链接
Read case study →/阅读案例复盘 →。
- 卡片保持整卡可点,摘要末尾增加小型文字链接
2. /posts/ 全部文章归档页
- 结构模型:
- 顶部:实时搜索栏 + 分类与热门标签过滤条。
- 中部(Featured 精选区):展示 2–3 篇旗舰精选文章卡片(16:9 WebP 封面、简短摘要、阅读时间、核心标签)。
- 下部(完整归档):紧凑年份与月份条目列表,供高效快速扫读。
- 交互联动机制(顾问裁定):
- 默认态:展示 Featured 精选卡片 + 默认全量归档列表。
- 触发筛选态:一旦用户在搜索框输入首个有效字符,或点击选中任意 Category/Tag 芯片,Featured 精选区执行平滑收起(高度收起 + 150–200ms 过渡,兼容
prefers-reduced-motion),把全量视口空间让给检索结果。 - 恢复态:用户清空输入且清除 Tag 筛选时,精选区重新展开。
- 状态反馈:列表上方常驻显式筛选状态(当前过滤条件、命中篇数、一键
Clear filters按钮)。 - 全局覆盖:搜索算法对全量文章进行匹配,精选文章在收起状态下依然能在结果列表中被命中展示。
3. 全局组件体验优化
src/components/PostList.astro通用卡片组件补全轻量行动链接(Read article →/Read case study →)。- 严格保证中英双语(EN / ZH)同等体验与无死角本地化。
- 保证 375px/390px 移动端无横向滚动溢出。
二、工单拆解与实施路线图
工单 1:/posts/ 混合列表与动态联动(P0)
- 目标文件:
src/pages/posts/index.astrosrc/pages/zh/posts/index.astrosrc/components/Archive.astro
- 实施内容:
- 在
Archive.astro或posts/index.astro中定义featuredPosts选取逻辑(复用首页验证过的 3 篇经典系统级案例)。 - 实现 Featured 响应式栅格卡片(16:9 WebP 缩略图、标题、阅读时长、摘要、行动链接)。
- 改造
Archive.astro的客户端脚本:- 增加
#archive-featured容器引用与折叠状态类.is-collapsed。 - 监听
input输入与 Tag/Category 按钮点击,计算isFiltering = Boolean(query || activeTag || activeCat)。 - 当
isFiltering === true时,平滑收起#archive-featured;重置为 false 时恢复。 - 增加
#archive-filter-status状态栏(显示匹配数量与“清除筛选”按钮)。
- 增加
- 完善 CSS 过渡动画与
@media (prefers-reduced-motion: reduce)降级支持。
- 在
工单 2:/categories/case-studies/ 紧凑 Hero 与作品集重构(P0)
- 目标文件:
src/pages/categories/[category].astrosrc/pages/zh/categories/[category].astrosrc/components/CategoryArt.astrosrc/components/PostList.astro
- 实施内容:
- 为
case-studies类别定制专用 Hero 结构:- 桌面端 CSS Grid / Flex 两栏布局(左侧 H1 + 定位介绍,右侧 21:9 / 3:1 扁平架构视觉)。
- 移动端单栏自然堆叠。
- 视觉资产准备:
- 为
case-studies制作或导出具备 3 宿主 + Docker + Prometheus 拓扑辨识度的横幅素材(落地于/images/categories/case-studies-banner.webp)。 - 在
CategoryArt.astro或分类页直接引入响应式<picture>标签。
- 为
- 列表项调整:
case-studies分类下的文章加入排序权重(旗舰案例前置)。- 卡片增加解决问题、量化结果指标(利用已有的
featuredMetrics数据源或 frontmatter 扩展)。
- 增加卡片右下角
Read case study →/阅读案例复盘 →引导文字。
- 为
工单 3:全站列表组件与多语言对齐(P1)
- 目标文件:
src/components/PostList.astrosrc/styles/global.css
- 实施内容:
PostList.astro全面增加可点击的小型文字链接:- 普通分类:
Read article →/阅读文章 → - Case Studies:
Read case study →/阅读案例复盘 →
- 普通分类:
- 校验中英双语标签字典
categoryLabel,确保无未翻译的英文字段泄漏到/zh/页面。 - 确保列表卡片在移动端下的行间距与点击区域(Touch Target ≥ 44px)符合无障碍规范。
工单 4:端到端验收与发布(P0)
- 验收流程:
- 本地执行
npm run build,确保 Astro 构建零错误。 - 运行
node scripts/check-assets.mjs,确保静态资源引证有效。 - 使用 Headless 探测工具或 Playwright 脚本验证 1920px 与 375px 视口下的视觉呈现与水平溢出(
scrollWidth === clientWidth)。 - 提交 Git 并推送到 Gitea(
git.hoelee.com)与 GitHub 镜像。
- 本地执行