file-to-flashcardlisted
Install: claude install-skill osren/interview-flashcard
# 文件转 FlashCard 格式
将用户提供的文件转换为标准 FlashCard Markdown 格式,并保存到 `docs/Transfer` 目录。
## 核心能力
- 解析两种格式的文件:问答格式和技术文档格式
- 自动识别题目编号和答案内容
- 保留代码块等原始格式
- 输出标准 FlashCard 格式
- 自动重命名避免文件冲突
## 工作流程
### Step 1: 读取输入文件
读取用户指定的文件内容。
**输入格式 A:问答格式**
```markdown
## 1. 请介绍一下 React 的生命周期
## 答案
React 16.4 后生命周期包括...
---
## 2. 什么是 Virtual DOM
## 答案
Virtual DOM 是...
```
**输入格式 B:技术文档格式**
```markdown
## 1. MPX 概述
MPX 是滴滴出行开源的小程序增强框架,基于 Vue 2.7 构建,支持...
---
## 2. 文件结构
### 2.1 MPX 文件结构
...
```
### Step 2: 解析内容
**问答格式解析规则:**
1. **题目识别**:`## 数字. 题目内容` 或 `## 题目内容`
2. **答案识别**:`## 答案` 标记开始,下一个 `---` 或下一个题目前结束
3. **分隔符**:题目间用 `---` 分隔
**技术文档格式解析规则:**
1. **题目识别**:`## 数字. 章节标题`(作为问题)
2. **答案内容**:该 `##` 标题下的所有内容,直到下一个 `##` 或文件结束
3. **保留格式**:代码块(```)、列表等原样保留
4. **子标题处理**:如 `### 2.1`、`#### 2.1.1` 等子标题作为答案内容的一部分保留
### Step 3: 生成 FlashCard 格式
输出格式:
```markdown
# 文件名
## 1. 问题内容
## 答案
**答案内容**
---
## 2. 问题内容
## 答案
**答案内容**
---
```
**转换规则:**
1. **答案内容包裹**:答案内容用 `**` 包裹
2. **代码块处理**:代码块(用 ``` 包裹的内容)不参与 `**` 包裹,独立存在
3. **子标题处理**:子标题(如 `### 2.1`)用 `**` 包裹
4. **分隔符**:每个问答对后加 `---` 分隔
5. **保持原有换行和格式**
**答案内容结构示例:**
```markdown
## 答案
**### 2.1 多端支持矩阵**
| 平台 | Mode 标识 | 产物后缀 |
|-----|---------|---------|
| 微信小程序 | `wx` | `.wxss` |
**### 2.2 条件编译**
```javascript
// 环境判断
export const IS_H5 = __mpx_mode__ === 'web'
```
---
### Step 4: 保存文件
1. 如用户未指定输出文件名,则使用传入文件的文件名(不含扩展名)作为输出文件名
2. 检查 `docs/Transfer/` 是否已存在同名文件
3. 如已存在,自动重命名为 `文件名_1.md`、`文件名_2.md` 等
4. 保存文件
## 输���格式模板
```markdown
# {