目录结构
Travel 模块同时使用 MDX 和 JSON:
content/travel/
index.json
hero-section.json
2023-california-highway-1/
index.mdx
manifest.json
assets/
文件职责
index.json:旅行列表元信息(标题、地点、日期、封面、状态)
hero-section.json:首页 Travel Hero 背景图配置
<slug>/index.mdx:详情正文与 frontmatter
<slug>/manifest.json:图片清单(画廊渲染依赖)
Frontmatter 字段
lib/travel/frontmatter.ts 校验字段:
---
title: "加州一号公路"
subtitle: "在海岸线追逐落日"
location: "加利福尼亚, 美国"
dateStart: "2023-08-18"
dateEnd: "2023-08-22"
theme: "california-roadtrip"
status: "published" # draft | published | archived
tags: "公路旅行,海岸,夏季"
heroGallery: "hero"
heroImageId: "hero-01"
---
发布流程
你需要同时维护目录内 index.mdx 和顶层 index.json:
- 新建
content/travel/<slug>/index.mdx
- 补充或更新
content/travel/<slug>/manifest.json
- 在
content/travel/index.json 增加该条目
- 运行
npm run content:sync:dry
- 运行
npm run content:sync
- 验证
/travel 与 /travel/<slug>
状态与排序
- 列表页只展示
published
- 列表默认按日期倒序
index.json 中的数据可覆盖部分 MDX 字段显示
关键注意事项
Travel 模块同步时会读取 manifest.json。如果文件缺失,虽然可容错,但你可能在详情页看到画廊不完整。
同步逻辑会把数据库中已不存在目录的 travel 文章标记为 ARCHIVED。