Cursor中添加并使用博客生成Skill

前言

每次写博客,我们可能要参考AI的回答,但是AI的回答的格式不是我们想要的,每次都要调整,我们可以把自己的要求写成一个Skill,这样生成的博客就会更符合我们的要求。

位置

.cursor/skills/blog-generator

其中blog-generator就是我们的技能文件夹

下面创建技能文件SKILL.md

技能内容

内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
---
name: blog-generator
description: Generates Chinese technical blog posts in a structured tutorial format with Jekyll-style frontmatter and code blocks. Use when the user asks to write/generate a new blog post, markdown article, or a tutorial for Android/Web/Kotlin/etc.
---

# 博文生成器(结构化教程)

## 使用方式(触发条件)

当用户提出以下诉求时使用本 Skill:

- “生成/写一篇/写博文/新文章/教程/markdown”
- 用户给出一个主题、技术栈或需求(例如:WorkManager 周期任务、后台调度、API 集成)

## 核心目标

生成一篇可直接发布到 `source/_posts/``.md` 文件:

- 顶部包含 YAML frontmatter(`layout/title/description/date/tags/categories`
- 正文使用中文分节,包含“前言/步骤/代码/验证/总结”等模块
- 代码块尽量可运行,并在无法确定关键版本/配置时向用户提问或用通用写法并提示可能差异
- 正文各章节之间不要出现分割线;特别是:**禁止正文出现单独一行的 `---`**(只允许 YAML frontmatter 起止的两个 `---`
- 章节标题尽可能简短(优先用 1 行短短语,如 `# 前言` / `# 依赖` / `# 实现` / `# 验证` / `# 总结`),详细解释放在正文中

## 先澄清(如关键信息缺失就提问)

生成前优先收集/确认这些信息(缺少就问用户):

1. 文章主题与标题要点(用户给了就复述确认)
2. 目标技术栈(语言/框架/平台,例如 Android Kotlin、Node.js、Vue/Nuxt)
3. 期望包含代码吗(默认:需要)
4. 读者水平(新手/进阶/团队内部,默认:新手可读)
5. 标签与分类(默认:从技术栈推断;若不明确就先给候选)

## 生成工作流

按以下顺序组织正文内容(尽量贴近参考文章的节奏):

1. `# 前言`
- 用 3-6 句描述“为什么做、解决什么问题、一个最小场景示例”
- 如包含周期/异步/任务调度,写出关键限制或注意点(例如最小间隔、系统限制),但避免写死过期信息
2. `# 依赖`(仅当需要代码/SDK 时)
- 给出需要加入的依赖片段(Gradle/npm/版本用用户提供的;用户没给就给“示例版本”并标注“按项目实际调整”)
3. `# 实现`(拆小节)
- 每一步一个短标题:例如 `## 创建类``## 调度任务``## 监听状态(可选)`
- 每个小节包含:关键代码 + 一两句解释
4. `# 验证`
- 提供如何验证是否工作(日志/断点/命令/接口返回)
5. `# 扩展`(若主题合理)
- 提供停止、取消、清理或替代方案(例如“按 tag 取消”“一次性延迟任务”等)
6. `# 总结`
- 用“步骤清单 + 注意事项”总结
- 可复用类似参考文章的写法(例如 `步骤``注意`
7. `# 方法`(可选)
- 用“方法类别/列表”收束:查询/取消/链式(按主题调整)

## 输出格式要求(强约束)

### 1) 文件名与路径

- 默认写入建议路径:`source/_posts/{date}-{slug}.md`
- `date` 默认使用今天(由系统环境决定时可由代理填写),格式 `YYYY-MM-DD`
- `slug` 使用小写 kebab-case(例如 `android-workmanager-periodic-task`

### 2) YAML frontmatter(必须)

使用如下字段;字段值按主题替换:

```yaml
---
layout: post
title: { 标题 }
description: { 一句话摘要 }
date: { YYYY-MM-DD }
tags:
- { tag1 }
- { tag2 }
categories: { category }
---
```

说明:

- `tags` 与 `categories` 根据技术栈推断,若用户没给就先给候选,并在正文开头用一句话表明“可按需修改 tags/categories”

### 3) 代码块

- 每段代码使用带语言标记的代码块(例如 `kotlin` / `gradle` / `bash` / `ts`)
- 不在 Skill 中输出 Windows 风格路径(正文里避免 `scripts\\xxx` 形式;需要路径就用正斜杠)

## 质量自检清单(生成前/生成后)

在给出最终文章前检查:

- 标题与 `description` 是否准确对应主题
- 结构是否包含:`前言` + `步骤/依赖/代码(如需)` + `验证` + `总结`
- 没有明显编造的 API/版本信息;不确定就用“示例/按需调整”或向用户提问
- 代码块能在读者视角下完成替换/迁移(例如类名、入口位置、依赖位置在文中出现)

## 写入文件指令(当用户允许“落地生成”时)

如果用户明确要“直接生成/写入文件/发布到 posts”,则:

1. 先在回复中展示最终文章内容与建议文件路径
2. 仅在用户确认后,再把内容写入 `source/_posts/` 对应文件
3. 如果用户没有确认写入,就只输出内容与路径建议

## Examples

**示例 1(用户只给主题)**
Input: 生成一篇 Android Kotlin 教程:如何用 WorkManager 实现周期性同步,并教我怎么验证和取消。
Output:

- 生成 frontmatter
- `前言/添加依赖/创建 Worker/调度任务/监听状态(可选)/查看日志验证/取消/总结`

**示例 2(用户要按特定结构)**
Input: 按类似“前言 + 步骤 + 代码 + 查看日志验证 + 总结”风格,写一篇 Vue 组件通信的文章。
Output:

- 使用同样的分节风格,替换成 Vue 对应代码块与验证方式

使用方式

写一篇关于Java的入门教程