# M7 展示层与内容接入：从联调壳到真实页面（教程大纲）

## 一、这篇内容写给谁

- 已经完成 monorepo 基础工程、最小鉴权和简历内容流的开发者
- 想继续把项目从“能跑”推进到“真有内容、真有页面、真能继续升级”的开发者
- 想学习如何用小 issue 把展示层和内容流逐步接稳的读者

## 二、M7 要解决什么问题

M6 结束后，三端已经能跑，但仍存在明显断层：

- `admin` 还不是一个真正可编辑的后台
- `web` 还只是一个粗粒度展示壳
- `server` 中的内容还是占位示例，不是旧版真实简历
- 展示层基础样式在 `web / admin` 各自分散，后续 UI 升级缺少清晰边界

所以 M7 的本质，是把项目从“联调验证壳”推进到“真实内容进入真实页面”的阶段。

## 三、M7 的阶段边界

### 本里程碑做什么

- 收束联调验证改动
- 让后台能读取并保存真实草稿
- 把旧版简历内容迁移进标准模型
- 让公开站按模块稳定展示完整简历
- 抽出最小共享展示 tokens，为后续 UI 升级留边界

### 本里程碑不做什么

- 不做完整视觉重设计
- 不接 Figma 精修稿
- 不做数据库持久化
- 不做多模板切换
- 不做 JD 多版本简历

## 四、M7 的 issue 拆解思路

### issue-30 联调收束：统一端口与真实发布按钮

- 为什么联调阶段的“临时修正”也要补成正式 issue
- 如何把端口、文档、环境变量、测试和发布按钮一起收束
- 为什么这一步是后续真实页面工作的基础

### issue-31 admin 真草稿读取与保存

- 为什么后台编辑态必须先于完整后台信息架构
- 为什么“保存草稿”不能等价于“公开发布”
- 如何从最小 profile 面板开始建立真实内容流

### issue-32 旧版简历内容迁移到标准模型

- 旧版 Vue 简历的真实内容来源有哪些
- 如何从页面内容反推领域模型，而不是照搬旧页面结构
- 双语字段怎样映射到 `StandardResume`

### issue-33 web 公开简历页面模块化渲染

- 为什么先模块化，再重设计
- 如何按 `profile / experiences / projects / education / skills / highlights` 组织页面
- 如何保留 `light / dark`、`zh / en` 和导出入口

### issue-34 展示层整理：为后续 UI 升级预留边界

- 什么重复值得先抽成共享 tokens
- 为什么现在不适合直接做组件库
- 如何用最小 `packages/ui` 把 `web / admin` 的共享展示基础收拢起来

## 五、M7 的关键设计取舍

### 1. 先接内容，再谈美化

- 页面看起来是否“高级”不是当前首要目标
- 先保证真实内容能被 admin、web、export 一致消费

### 2. 先模块化，再做视觉升级

- 如果结构边界不清晰，后续每次改 UI 都会连带改业务结构
- 模块化是后续主题和模板系统的前提

### 3. 先抽 tokens，不急着抽组件

- `web / admin` 当前共享的是基础展示表达
- 业务组件语义差异还很大，过早组件化会把边界抽乱

## 六、M7 完成后的项目状态

- `admin`：可登录、可读写最小草稿、可显式发布
- `web`：可读取真实已发布简历，并按模块展示
- `server`：标准模型承载真实简历内容，导出链路继续可用
- `packages/ui`：已具备最小共享展示层入口

## 七、建议展开成系列文章的章节

### 文章 1：为什么项目从“联调壳”进入“真实页面”要拆成 5 个小 issue

- 重点讲过程感和教程节奏

### 文章 2：后台编辑态为什么不能直接等于公开展示态

- 重点讲草稿 / 发布边界

### 文章 3：旧版 Vue 简历如何迁移到标准双语模型

- 重点讲内容映射与结构取舍

### 文章 4：为什么页面模块化要先于视觉重设计

- 重点讲展示层演进顺序

### 文章 5：什么时候该抽共享 tokens，什么时候不该直接做组件库

- 重点讲共享边界与抽象时机

## 八、推荐引用的开发日志

- `docs/30-开发日志/M7-issue-30-联调收束-统一端口与真实发布按钮.md`
- `docs/30-开发日志/M7-issue-31-admin-真草稿读取与保存.md`
- `docs/30-开发日志/M7-issue-32-旧版简历内容迁移到标准模型.md`
- `docs/30-开发日志/M7-issue-33-web-公开简历页面模块化渲染.md`
- `docs/30-开发日志/M7-issue-34-展示层整理为后续-UI-升级预留边界.md`

## 九、后续衔接建议

- `M8` 可以优先考虑数据库持久化、简历模块补全或 UI 精修
- 但无论进入哪条线，都建议继续保持当前 issue 粒度和教程型节奏
