Blog Writer Skill
帮助用户按照 astro-koharu 博客的规范创建新博文。
你的任务
当用户请求创建新博文时:
收集必要信息(如果用户未提供):
-
文章标题
-
文章分类(从下面的分类列表中选择)
-
文章主题/关键词(用于生成标签和描述)
生成 frontmatter:
title: [文章标题] link: [URL slug,使用英文短横线分隔] catalog: true date: [当前日期时间,格式:YYYY-MM-DD HH:mm:ss] description: [一句话描述文章内容,50-100字] tags:
- [相关标签1]
- [相关标签2]
- [相关标签3] categories:
- [一级分类, 二级分类]
分类格式说明:
-
嵌套分类使用数组格式:- [一级分类, 二级分类]
-
例如:- [笔记, 前端] 会创建 URL /categories/note/front-end 和面包屑 "笔记 → 前端"
-
单个分类直接写分类名:categories: 随笔
确定文件路径:
-
基础路径:src/content/blog/
-
根据分类生成对应的子目录结构
-
文件名:使用 link 字段值 + .md 扩展名
生成 Markdown 内容框架:
-
提供文章结构建议(引言、正文章节、总结等)
-
如果适合,建议使用 infographic 信息图
-
提供代码示例占位符(如果是技术文章)
分类系统
一级分类及其子分类
笔记 (note/)
-
前端 (front-end/)
-
React
-
Vue
-
TypeScript
-
CSS
-
性能优化
-
后端 (back-end/) - 如果需要使用,确保已在 _config.yml 中添加映射
-
其他新增子分类 - 需要先在 _config.yml 添加映射
工具 (tools/)
-
开发工具
-
效率工具
-
使用指南
随笔 (life/)
-
生活随笔
-
年度总结
-
读书笔记
周刊 (weekly/)
-
技术周刊
-
每周分享
分类映射规则
YAML 格式(重要):
嵌套分类(推荐)- 使用数组包裹
categories:
- [笔记, 前端]
单个分类 - 直接写分类名
categories: 随笔
URL 和路径映射:
-
categories: 随笔 → URL: /categories/life → 文件路径: src/content/blog/life/
-
categories: - [笔记, 前端] → URL: /categories/note/front-end → 文件路径: src/content/blog/note/front-end/
-
categories: - [笔记, 前端, CSS] → URL: /categories/note/front-end → 文件路径: src/content/blog/note/front-end/ (三级分类作为标签)
注意:
-
嵌套分类必须使用 - [一级, 二级] 格式
-
分类名称(中文)会映射到 URL slug(英文),映射关系见上方分类列表
新增分类
如果用户需要创建上述分类之外的新分类,需要:
更新 _config.yml :
category_map:
一级分类
随笔: life 笔记: note 工具: tools 周刊: weekly
二级分类
前端: front-end 后端: back-end # 新增示例
添加新分类映射
新分类名: new-category-slug
创建对应目录:
-
在 src/content/blog/ 下创建对应的目录结构
-
例如:新增"后端"分类需要创建 src/content/blog/note/back-end/
提醒用户:
-
告知用户已添加新分类映射到 _config.yml
-
说明新分类的 URL 路径
文件命名规范
-
使用英文小写字母
-
单词间用短横线 - 分隔
-
避免特殊字符
-
例如:react-hooks-guide.md , astro-blog-setup.md
内容建议
技术文章结构
背景/问题
[描述要解决的问题或技术背景]
解决方案
[详细说明解决方法]
关键技术点1
[技术细节和代码示例]
关键技术点2
[技术细节和代码示例]
实践效果
[实际应用效果、性能对比等]
总结
[总结要点和经验]
工具/指南类文章结构
简介
[工具/方法简介]
安装/准备
[安装步骤或前置条件]
基本使用
[基础用法和示例]
高级功能
[进阶功能和技巧]
实用技巧
[最佳实践和注意事项]
总结
[总结和资源链接]
随笔类文章结构
引言
[开场白,引出话题]
正文
[多个段落展开论述]
感悟/总结
[个人思考和总结]
Infographic 使用建议
根据文章类型,建议使用信息图的场景:
-
列表信息(技术栈、功能特性)→ list-grid-badge-card
-
流程步骤(安装步骤、开发流程)→ sequence-zigzag-steps-underline-text
-
对比分析(技术对比、优缺点)→ compare-binary-horizontal-simple-fold
-
统计数据(性能对比、用量统计)→ chart-column-simple 或 chart-bar-plain-text
-
层级结构(目录结构、知识体系)→ hierarchy-tree-tech-style-capsule-item
最后步骤
创建完博文后:
如果添加了新分类:
-
确认已更新 _config.yml 中的 category_map
-
确认已创建对应的目录结构
-
告知用户新分类的 URL 路径
运行检查:
-
运行 pnpm dev 在本地预览
-
运行 pnpm lint:fix 检查格式
后续建议:
-
提醒用户可以使用 infographic skills 添加信息图
-
如果需要,提供相关文章推荐的建议(基于 tags)
示例对话
示例 1:使用现有分类
用户:写一篇关于 React Hooks 使用技巧的文章
你应该:
-
确认分类:笔记 > 前端 > React
-
生成文件路径:src/content/blog/note/front-end/react-hooks-best-practices.md
-
创建包含完整 frontmatter 的文件(使用 - [笔记, 前端] 分类格式)
-
提供文章结构框架
-
建议在"常用 Hooks 对比"部分使用 list-grid-badge-card 信息图
-
建议在"Hooks 使用流程"部分使用 sequence-zigzag-steps-underline-text 信息图
示例 2:需要新增分类
用户:写一篇关于 Node.js 后端开发的文章
你应该:
-
发现"后端"分类不在现有分类列表中
-
询问用户是否要添加"后端"分类
-
如果用户同意:
-
更新 _config.yml ,添加 后端: back-end
-
创建目录 src/content/blog/note/back-end/
-
生成文章文件 src/content/blog/note/back-end/nodejs-development.md
-
frontmatter 使用 - [笔记, 后端] 分类格式
-
告知用户:
-
新分类已添加到 _config.yml
-
URL 路径为 /categories/note/back-end
-
已创建对应目录结构