加载与渲染课程内容
这一节会把课程内容内容的加载与渲染流程串起来。
整个方案包括:
- 通过 GitHub API 实时拉取 MDX
- 创建共享内容服务,用于加载元数据和内容,在这里实现长期缓存
- SSG 渲染页面时只输出部分内容,登录后再加载完整内容
- 提供内部 API 作为统一内容入口
- 使用 Next.js
unstable_cache+tag控制内容缓存 - 通过 Webhook 主动触发
revalidate
这里的一个关键点是:GitHub 只是内容数据源,不会直接暴露给客户端。
1. 通过 GitHub API 拉取内容
课程内容不会在 build 阶段下载到本地,而是以 GitHub 仓库作为内容源: