用途:把一篇原始 Markdown 文件转换为格式规范的 Typos 文章,并通过 /api/v1/posts 接口发布到 Typos 博客。
主要能力:
- 补全 frontmatter 六个字段:title、date、slug、description、category、cover;已有字段作为默认值,只补缺失或明显错误的部分。
- title 取自现有 # H1 或显式标题,过长时另写简短标题;date 优先用现有值,其次正文中可辨识的日期,否则用当天(YYYY-MM-DD);slug 由标题含义生成英文 kebab-case 短语(2–5 个词,小写 ASCII),中文标题翻译为简短英文短语;description 为文章本身语言的一句话摘要(中文约 15–40 字,英文约 10–20 词);category 为 1–3 个主题标签的 YAML 列表,无法匹配时默认“随笔”;cover 无明确封面图 URL 时留空。
- 生成后以 YAML 块和文章 URL(<baseUrl>/posts/<slug>)展示给用户确认,确认或修改后才上传。
- 上传由 scripts/upload.mjs 执行:node <skill-dir>/scripts/upload.mjs <path-to-final-markdown>,成功返回 {"ok":true,"slug":"...","url":"..."},失败返回 {"ok":false,...}。
- 批量模式:多个文件先统一生成并给出汇总表(file → title / slug / category)一次确认,再逐个上传,最后报告成功与失败汇总。
- 支持 JSON 上传备选:同一接口接受 Content-Type: application/json 与 {title, date, slug, description, category, cover, content},默认优先 Markdown 方式。
使用方式:
- 读取目标 Markdown 文件(用户给出路径,或指代上下文中的文件)。
- 生成 frontmatter,遵循上述字段规则。
- 展示 YAML 块与预期文章 URL,等待用户确认或调整。
- 将确认后的 frontmatter 与正文写入临时文件(不修改用户原文件,除非被要求),运行上传脚本,报告结果与线上 URL,随后清理临时文件。
前置条件:凭证存放于技能旁的 config.json(baseUrl + token),该文件仅本地保留并被 git 忽略;缺失时需将 config.example.json 复制为 config.json,并填入站点 URL 与在 /admin → 密钥 生成的 API token。
错误处理:status 401 表示 token 无效或过期,需在 /admin → 密钥 重新生成并更新 config.json;status 503 表示站点 D1 数据库不可达,接口依赖 D1;网络错误则检查 baseUrl 与连通性。
格式注意:category 可为 YAML 列表(推荐)或逗号分隔字符串,服务器均接受;frontmatter 之下保持原文正文不变,不重写文章内容;含冒号或特殊字符的值需加引号。
适用场景:为未带 frontmatter 的 Markdown 文章快速补全元数据并发布到 Typos 博客;批量整理多篇文章后统一确认并发布。
限制:仅面向 Typos 博客及其 /api/v1/posts 接口;需要可用的 API token 和站点 D1 数据库;封面仅在正文明确引用图片 URL 时填写;价格、配额等信息暂未提供。