Publish Weekly(草稿发布)
此技能用于将本地生成的周刊 Markdown 文件发布到 Payload CMS 的 weekly 集合中,并保持为 草稿(status: draft)。
前置条件
- •环境变量
PAYLOAD_API_KEY:来自 Payloadusers集合为某个用户生成的 API Key。 - •环境变量
PAYLOAD_BASE_URL(推荐):Payload/Next.js 服务的公开地址(例如http://localhost:3000)。
输入
从 /weekly 命令的参数块中获取:
- •
week_id:如Y26W12(写入issueNumber) - •
title:写入title - •
filename:周刊 Markdown 文件名(从工作目录读取该文件内容,写入content) - •
current_date:写入publishDate(ISO 日期字符串)
可选:
- •
summary:周刊描述/摘要(写入summary)。若未提供则从content提炼。 - •
tags:标签(字符串数组,例如["模型", "工具"])。写入tags数组字段。 - •
links:链接列表(对象数组,形如[{ label, url }]),写入links。
发布目标
- •Collection:
weekly - •REST Endpoint:
- •查询:
GET {BASE_URL}/api/weekly?where[issueNumber][equals]={week_id}&limit=1 - •创建:
POST {BASE_URL}/api/weekly - •更新:
PATCH {BASE_URL}/api/weekly/{id}
- •查询:
认证方式(HTTP Header)
必须使用 Payload 的 API Key 认证头:
code
Authorization: users API-Key {PAYLOAD_API_KEY}
Content-Type: application/json
字段映射
发布/更新时写入以下字段:
- •
title(text, required):{title} - •
summary(textarea, required):- •若提供了
{summary}:直接使用 - •否则:从
content提炼 1-2 句话(不超过 200 字);如果文章开头已包含“摘要/导语”,优先复用
- •若提供了
- •
content(textarea, required): 读取{filename}的完整 Markdown 内容 - •
issueNumber(text, required, unique):{week_id} - •
status(select, required): 固定写入draft - •
publishDate(date, required):{current_date}(建议YYYY-MM-DD)
可选字段(若无就留空/不传):
- •
links(array):{links},元素结构为{ label: string, url: string } - •
tags(array): 将{tags}(字符串数组)转换为[{ value: string }]
请求 Body 示例
json
{
"title": "Agili 的 AIGC 周刊(Y26W12)",
"issueNumber": "Y26W12",
"publishDate": "2026-03-25",
"status": "draft",
"summary": "本期聚焦推理模型的工程化落地,以及一批值得试用的生产力工具。",
"content": "# ...完整 Markdown...",
"links": [{ "label": "在线阅读", "url": "https://aigc-weekly.agi.li" }],
"tags": [{ "value": "模型" }, { "value": "工具" }]
}
行为约束
- •幂等:优先按
issueNumber == week_id查询:- •若已存在:用
PATCH更新(覆盖title/summary/content/publishDate/status/links/tags)。 - •若不存在:用
POST创建。
- •若已存在:用
- •保持草稿:无论是创建还是更新,都必须写入
status: "draft"。 - •产物落盘:将创建/更新成功的响应 JSON 保存为
published/{week_id}.json,用于后续恢复与审计。 - •失败可诊断:若请求失败,输出:HTTP 状态码、响应 body(若有)、请求的 URL(不要泄露
PAYLOAD_API_KEY)。