← ClaudeAtlas

cyxj-blog-publisted

把文章发布到 Astro 博客。生成符合规范的 post(frontmatter 必填项校验、 kebab-case 文件名、正文图片全部换成图床公网 URL),放进 src/content/posts/,再 build 并部署。产出物在博客仓库,不在内容创作工作区。 触发词:发布到博客、发博客、博客发文、上博客、Astro 发布、blog 发布。
chenyuxiaojin/xiaochen-skills · ★ 6 · AI & Automation · score 76
Install: claude install-skill chenyuxiaojin/xiaochen-skills
# cyxj-blog-pub — Astro 博客发布 把一篇成稿文章发到博客站点。**只做博客这一个平台**,不要顺手发别处。 ## 前置检查 - 博客仓库路径读环境变量 `CYXJ_BLOG_REPO`;未设置则回退 `~/项目/服务器/server-config/blog/`,并向用户确认。 - 后文所有 `$CYXJ_BLOG_REPO` 都指这个路径。 ## 何时用 - 用户说「发到博客」「发个博客」并指明(或已存在)一篇文章 - 文章源通常是 Obsidian `$CYXJ_VAULT_BASE/待发布/` 的成稿(未设置 `CYXJ_VAULT_BASE` 时按 `~/obsidian/灵感库` 兜底,并向用户确认),或刚由 `cyxj-transcript` 产出的草稿 **前置**:文章已成文。还是逐字稿先走 `/cyxj-transcript`。 ## 项目坐标(来自内容创作 CLAUDE.md) | 项 | 值 | |----|----| | 博客项目 | `$CYXJ_BLOG_REPO`(见「前置检查」) | | 文章目录 | `src/content/posts/`(文件名 **kebab-case**) | | 图片 | **全部用图床公网 URL**,禁止本地路径进正文 | | 部署 | 进入 `$CYXJ_BLOG_REPO` 后先定位 `package.json` 所在目录再跑 `pnpm build`;build 后确认 `dist/` 实际位置再拷贝 → `bash deploy.sh blog` | ## frontmatter 规范 ```yaml --- title: <文章标题> # 必填 description: <一句话摘要> # 必填 pubDate: <YYYY-MM-DD> # 必填 tags: [<可选>] # 可选 image: <封面图床 URL> # 可选 draft: false # 可选;true 则不发布 --- ``` 发布前**校验三个必填项齐全**:title/pubDate 可据稿推断后向用户确认;description 缺失必须问用户。 ## 工作流 1. **取稿**:Read 文章源(路径不明就在 `$CYXJ_VAULT_BASE/待发布/` 搜或问用户)。 2. **定文件名**:英文 kebab-case,如 `claude-code-for-non-coders.md`。 3. **处理图片(关键红线)**:正文里所有图片必须是图床 URL。 - 本地图 → 先传图床(`img.xiaochens.com`,Lsky Pro,见内容创作 CLAUDE.md「图床操作参考」),拿到公网 URL 再写进正文。 - 若读不到图床操作参考或缺少凭据,**必须停下向用户要上传方式**;绝不允许跳过图床直接用本地路径发布。 - **绝不把本地图片路径写进博客正文。** 4. **写 post**:先检查目标 `$CYXJ_BLOG_REPO/src/content/posts/<kebab>.md` 是否已存在,存在则停下确认是否覆盖;再组装 frontmatter + 正文写入。 5. **构建 + 部署**(动手前向用户确认要不要立即上线): - 进入 `$CYXJ_BLOG_REPO` 后先定位 `package.jso