# 学习资料自己做 三个代码编写的图文作品,每篇 8 张 3:4 画板、10 项工具。三篇共用一张 1080×1440 PNG 封面,通过同一个 S3 图片资产引用,不复制图片。 | 篇章 | 详情路径 | 主题 | | --- | --- | --- | | 01 | `/p/learning-skills-notes` | 笔记、网课与复习 | | 02 | `/p/learning-skills-teaching` | 练习、试卷与教学 | | 03 | `/p/learning-skills-english` | 词汇、精读、口语与写作 | 内容位于 `src/content/learning-skills/data.ts`,版式位于 `Series.tsx` 和 `src/styles/learning-series.css`。每篇依次为共同封面、索引、五张双工具介绍、使用路线与来源;支持分页、索引跳转、连续阅读与同系列跳转。所有小样标注为排版示意;GitHub 来源已于 2026-10-23 核对,尚未逐项安装实测。 `public/learning-skills/cover.svg` 是封面设计源稿,`cover.png` 是部署与素材库实际使用的图片,不依赖服务器安装中文字体重新渲染。 ## 实际发布 存储初始化不会自动插入示例帖子。生产发布时,明确执行 Compose 的 `publish` 一次性容器,运行 `publish-learning-series.cjs`,在真实 PostgreSQL/S3 中发布这三篇。 发布使用稳定 ID、数据库事务和锁;重复发布更新相同作品,保留创建时间,不新增重复帖子、封面资产或贡献记录。遇到相同 slug 被其他作品占用时失败,不覆盖其他作品。封面对象按内容摘要命名,图片与独立文字资产通过 `post_assets` 引用。分类置于学习工具及对应的笔记复习、教学资料、英语学习分支。 Docker 集成测试会重复执行发布,检查三个作品、共用封面的三次引用、封面尺寸与媒体读取、分类筛选、详情 HTTP 200,以及没有擅自增加贡献。 ## 验收约定 先推送 Git,再等 CI/CD 成功,最后直接访问服务器 http://8.211.154.134:18131/ 验收。不要启动本地网页预览,不把 localhost 作为展示或交付入口。