内容维护手册
按任务查找文件路径、复制最小模板,并核对生成结果。
新增文章
src/content/{locale}/articles/{slug}/index.mdx
import Heading from '@/components/common/Heading'
export const metadata = {
"title": "文章标题",
"description": "一句话概括内容。",
"date": "2026-09-23",
"keywords": [
"Next.js",
"MDX"
],
"outline": [
{
"id": "overview",
"text": "概述"
}
]
};
<Heading id="overview">概述</Heading>
在这里写正文。字段与约束
- title / date
- 必填。日期使用 YYYY-MM-DD,列表按日期倒序。
- description / keywords
- 建议填写。摘要和关键词用于列表与 SEO。
- outline
- 章节目录;id 与 Heading 的 id 保持一致。
- slug
- 来自文章目录名,不在 metadata 内填写。
生成到: src/content/{locale}/articles/list.json
生成命令
pnpm generate:articles
pnpm generate:routes维护速查分类
src/content/{locale}/cheatsheets/categories.json
[
{
"slug": "ai-fundamentals",
"title": "AI 基础",
"remark": "可选的分类说明"
}
]字段与约束
- slug / title
- 必填。slug 唯一;向现有数组追加条目,不要用示例替换整份文件。
- remark
- 可选。分类说明。
- 数组顺序
- 决定分类展示顺序,不使用 order 字段。
生成到: src/content/{locale}/cheatsheets/list.json
生成命令
pnpm generate:cheatsheets
pnpm generate:routes新增速查主题
src/content/{locale}/cheatsheets/{topicDir}/meta.json
{
"id": "example-topic",
"slug": "example-topic",
"title": "示例主题",
"description": "主题简介。",
"icon": "/assets/cheatsheet/model.svg",
"category": "ai-fundamentals",
"keywords": [],
"links": [],
"sections": [],
"order": 10,
"createdAt": "2026-09-23",
"updatedAt": "2026-09-23"
}字段与约束
- id / slug
- 必填。id 是稳定身份;slug 决定 URL,使用小写字母、数字和连字符。recent 为保留路径。
- title / description / icon / category
- 必填;category 必须对应 categories.json 的 slug,icon 指向已有资源。
- order / createdAt / updatedAt
- 必填。order 越小越靠前,日期为 YYYY-MM-DD。
- sections / links
- 必填数组,可以为空。sections 使用 {slug,title},顺序由数组决定;links 使用 {title,url}。
- keywords
- 可选的字符串数组。
生成到: src/content/{locale}/cheatsheets/list.json
生成命令
pnpm generate:cheatsheets
pnpm generate:routes新增速查内容
src/content/{locale}/cheatsheets/{topicDir}/{file}.mdx
export const metadata = {
"id": "example-topic-basics",
"slug": "basics",
"title": "基础知识",
"description": "内容简介。",
"keywords": [],
"preview": [
"一个关键知识点。"
],
"order": 0,
"publishedAt": "2026-09-23",
"updatedAt": "2026-09-23"
};
## 概述
在这里写正文。字段与约束
- id / slug / title / description
- 必填。文章 id 在同语言速查中唯一,slug 在主题内唯一;URL 使用 metadata.slug,而非文件名。
- order / publishedAt
- 必填。order 控制主题内顺序;publishedAt 为发布日期。
- updatedAt / keywords / preview
- updatedAt 可省略并回退到 publishedAt;其余为可选字符串数组。preview 建议不超过 4 条。
- section
- 主题 sections 非空时必填且必须匹配其中一个 slug;sections 为空时不能填写 section。
生成到: src/content/{locale}/cheatsheets/{topicDir}/list.json
生成命令
pnpm generate:cheatsheets
pnpm generate:routes新增工具
src/app/[locale]/tools/{id}/meta_{locale}.json
{
"name": "示例工具",
"description": "功能简介。",
"icon": "/assets/tool/srt.svg",
"tags": [],
"sort": 10
}字段与约束
- name / description
- 必填。本文件只提供列表元数据,仍需创建 page.tsx 与页面实现。
- icon / tags / sort
- icon 为资源路径,tags 为字符串数组;可用 sort 表达排序意图,生成脚本本身不按 sort 重排。
- author / version
- 可选扩展字段;生成器会保留额外元数据字段。
生成到: src/content/{locale}/tools/list.json
生成命令
pnpm generate:tools
pnpm generate:routes新增探索页面
src/app/[locale]/explore/{id}/meta_{locale}.json
{
"name": "示例工具",
"description": "功能简介。",
"icon": "/assets/tool/srt.svg",
"tags": [],
"sort": 10
}字段与约束
- name / description
- 必填。本文件只提供列表元数据,仍需创建 page.tsx 与页面实现。
- icon / tags / sort
- icon 为资源路径,tags 为字符串数组;可用 sort 表达排序意图,生成脚本本身不按 sort 重排。
- author / version
- 可选扩展字段;生成器会保留额外元数据字段。
生成到: src/content/{locale}/explore/list.json
生成命令
pnpm generate:explore
pnpm generate:routes生成数据结构
以下示例在构建时读取当前索引,仅截取少量条目;不要手改这些文件。recent 示例也只展示第一项,不代表实际分页大小。
自动生成 · 只读示例
src/content/zh-cn/articles/list.json
文章列表:从 metadata 选取字段,并补充目录 slug 与 lang。
[
{
"slug": "rsshub-ai-information-radar",
"lang": "zh-cn",
"title": "当所有平台都在算法推荐时,需要重新捡起 RSS",
"date": "2026-06-08 08:00:00",
"description": "记录我从 X 信息追踪需求出发,研究 RSS、RSSHub、自托管实例与 AI 工作流的过程。包括 RSS 基础概念、Route、Instance、Parameters、Output Formats,以及如何将 RSSHub 作为 AI 和 Agent 的信息输入层。",
"keywords": [
"RSSHub",
"RSSHub 教程",
"RSSHub 自托管",
"RSSHub Docker",
"RSSHub Route",
"RSSHub Parameters",
"RSS",
"RSS 阅读器",
"RSS Reader",
"RSS Feed",
"AI 信息源",
"AI 数据源",
"Agent 数据源",
"信息雷达",
"情报监控系统",
"个人信息系统"
]
}
]自动生成 · 只读示例
src/content/zh-cn/cheatsheets/list.json
全局速查索引:分类 → 主题,主题包含 articleCount,不含完整正文。
[
{
"slug": "ai-fundamentals",
"title": "AI 基础",
"remark": "跨模型都适用的底层概念",
"topics": [
{
"id": "model-fundamentals",
"slug": "model-fundamentals",
"title": "模型",
"keywords": [
"AI",
"基础"
],
"description": "模型是一个通过训练获得参数,并能够根据输入计算输出的数学系统。",
"icon": "/assets/cheatsheet/model.svg",
"links": [],
"category": "ai-fundamentals",
"order": 0,
"createdAt": "2026-08-17",
"updatedAt": "2026-08-17",
"articleCount": 5
}
]
}
]自动生成 · 只读示例
src/content/zh-cn/cheatsheets/model-fundamentals/list.json
主题文章列表:该主题的文章 metadata,按章节顺序、order 和 slug 排列。
[
{
"id": "model-fundamentals-what-is-a-model",
"slug": "what-is-a-model",
"title": "第一层:模型是什么?",
"keywords": [
"AI 模型",
"Model",
"模型架构",
"Model Architecture",
"模型参数",
"Parameters",
"模型权重",
"Weights",
"模型配置",
"Model Config",
"Tokenizer",
"模型基础"
],
"description": "从工程视角理解 AI 模型的基本构成,以及模型、架构、参数、权重、配置和 Tokenizer 等核心概念之间的关系。",
"preview": [
"模型是一套能够根据输入计算输出的数学系统。它的架构规定了如何计算,参数的具体数值则通过训练获得。",
"架构像一套预先设计好的计算框架,权重是训练过程中填入其中的大量数值;两者结合,才形成一个具备具体能力的模型。"
],
"order": 0,
"publishedAt": "2026-08-21",
"updatedAt": "2026-08-21"
}
]自动生成 · 只读示例
src/content/zh-cn/cheatsheets/home.json
首页速查:每个非空主题取最新一篇,合并主题、分类和图标信息,再按日期排列。
[
{
"slug": "google-antigravity-cli",
"title": "Google Antigravity CLI 安装及初始化",
"preview": [
"Google Antigravity CLI 是 Google Antigravity 的命令行工具,可以用于管理 Google Antigravity 的智能体。"
],
"updatedAt": "2026-09-23",
"topicSlug": "google-antigravity",
"topicTitle": "Google Antigravity",
"icon": "/assets/cheatsheet/google-antigravity.png",
"categorySlug": "ai-tools",
"categoryTitle": "AI 工具"
}
]自动生成 · 只读示例
src/content/zh-cn/cheatsheets/recent.json
最近更新:汇总全部速查内容,以 updatedAt(缺失时用 publishedAt)倒序;pageSize 控制分页。
{
"pageSize": 30,
"items": [
{
"slug": "google-antigravity-cli",
"title": "Google Antigravity CLI 安装及初始化",
"updatedAt": "2026-09-23",
"topicSlug": "google-antigravity",
"topicTitle": "Google Antigravity",
"icon": "/assets/cheatsheet/google-antigravity.png",
"categorySlug": "ai-tools",
"categoryTitle": "AI 工具",
"description": "了解 Google Antigravity CLI 的概念和用途场景。",
"publishedAt": "2026-09-23"
}
]
}自动生成 · 只读示例
src/content/zh-cn/tools/list.json
工具索引:从 meta 文件生成 id、href、tags,并保留扩展字段。
[
{
"id": "generate-guid-by-crypto",
"name": "UUID / GUID 生成器",
"description": "使用 Web Crypto API 生成随机 UUID v4,支持单个和批量生成。",
"href": "/tools/generate-guid-by-crypto",
"icon": "/assets/tool/uuid.svg",
"tags": [
"UUID",
"GUID",
"UUID v4",
"JavaScript"
],
"sort": 1,
"author": "Oceanz",
"version": "1.0.0"
}
]自动生成 · 只读示例
src/content/zh-cn/explore/list.json
探索索引:与工具类似,以 /explore/{id} 为入口。
[
{
"id": "edge-tts",
"name": "Edge TTS 语音样本 - 322 个神经语音预览",
"description": "在线试听 Microsoft Edge TTS 语音样本,对比 322 个神经语音,并复制 en-US-AriaNeural 等 voice ID,用于 Python edge-tts、Azure Speech、旁白和视频配音项目。",
"href": "/explore/edge-tts",
"icon": "/assets/explore/edge.png",
"tags": [
"Microsoft Edge",
"TTS",
"语音样本",
"edge-tts",
"Python",
"Azure Speech",
"神经语音",
"Edge TTS 语音样本",
"Microsoft Edge TTS samples",
"edge-tts Python",
"en-US-AriaNeural sample",
"Azure Cognitive Speech sample",
"文本转语音预览"
]
}
]自动生成 · 只读示例
src/generated/content-routes.json
路由清单:路径 → kind 与各语言 versions;用于静态页面、翻译提示和 sitemap。
{
"/": {
"kind": "page",
"versions": {
"zh-cn": {
"title": ""
},
"en": {
"title": ""
}
}
},
"/about": {
"kind": "page",
"versions": {
"zh-cn": {
"title": ""
},
"en": {
"title": ""
}
}
}
}自动生成 · 只读示例
src/generated/route-locales.json
语言可用性:路径 → 已发布语言数组,供语言切换和 hreflang 使用。
{
"/": [
"zh-cn",
"en"
],
"/about": [
"zh-cn",
"en"
]
}src/generated/cheatsheet-content.ts 也是构建产物:保存 locale/topicSlug/articleSlug 到 MDX 加载器的映射,以及主题 metadata 与列表的加载器;由 generate:cheatsheets 重建,不手动维护。
发布前检查
- 替换示例 id、slug、标题、日期与图标;不要把示例标识直接用于多篇内容。
- metadata 必须为静态字面量,不使用变量、函数或展开运算符。
- 中文和英文独立发布;未完成的长文使用 _draft 前缀或不创建,不复制中文占位。
- 运行 pnpm generate:all 后预览内容、主题、最近更新和语言切换;最后运行 pnpm build 与 pnpm verify:content-export。