mcpField
F
flashcard-creator

flashcard-creator

github.com/blazewicz生产力058 次安装42 周前更新
代码仓库

关于 flashcard-creator

flashcard-creator 是面向语言学习者的技能,可从网页提取语法、词汇和用法内容,生成适用于间隔重复的分类闪卡。它要求遵循固定 Markdown 格式,并可将卡片转换为 Anki 文本文件。

主要功能

  1. 01从网页提取语言学习内容
  2. 02生成语法、词汇和练习卡片
  3. 03按类别组织并提供多种卡型
  4. 04使用固定格式转换为 Anki 文件

适用场景

  1. 01将语法课程整理为复习卡片
  2. 02把词汇表转为带语境的卡片
  3. 03从练习题生成填空与翻译卡
  4. 04为 Anki 准备可导入的牌组

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/blazewicz/claude-flashcards --skill flashcard-creator

安装后在 Claude Code 中输入/flashcard-creator确认已加载。

详细介绍

抽认卡创建器

概述

此 Skill 可从网页中提取语言学习内容,并将其转换为结构化抽认卡,以适配 Anki 等间隔重复软件。适用于任何语言(西班牙语、日语、阿拉伯语、中文等),并会根据不同的书写系统和语法结构进行调整。它可以从单一来源创建多种类型的卡片(语法规则、练习、翻译、问答),以最大限度地提高重复练习的价值。

前提条件

  • 浏览器必须已打开,并启用 Claude in Chrome 扩展
  • 目标页面应包含结构化的学习内容(语法课程、词汇、练习)
  • 项目根目录中应有用于转换为 Anki 格式的 Python 脚本 parse_flashcards.py

⚠️ 重要:Markdown 格式要求

Python 解析器依赖于精确匹配关键词。必须使用以下格式:

**Front:** Question, prompt, or term here
**Back:** Answer, explanation, or definition here

严格要求:

  1. 必须使用 **Front:**,格式完全一致——包含粗体 Markdown 标记(**)和冒号
  2. 必须使用 **Back:**,格式完全一致——包含粗体 Markdown 标记(**)和冒号
  3. Front 和 Back 必须分别位于相邻的两行
  4. 两个关键词都区分大小写
  5. 冒号后必须有一个空格

请勿使用:

  • ❌ Front:(没有粗体)
  • ❌ Question: 或 Q:
  • ❌ **Front**:(冒号不在粗体标记内)
  • ❌ **Front :**(冒号前有空格)
  • ❌ 任何其他变体

原因: Python 解析器(parse_flashcards.py)使用以下代码:

if line.startswith('**Front:**'):
    front = line.replace('**Front:**', '').strip()

任何偏离此精确格式的情况,都会导致解析时卡片被静默跳过。

示例区块(正确格式)
## Grammar Rules

**Front:** Cuando + presente de subjuntivo (futuro)
**Back:** Cuando me jubile, me iré a vivir a la costa.

**Front:** antes de que + presente de subjuntivo
**Back:** Los pájaros emigran a lugares más cálidos antes de que empiece el invierno.

## Fill-in-the-Blank Exercises

**Front:** Cuando _____ (tener - yo) vacaciones, _____ (soler) viajar a destinos exóticos.
**Back:** Cuando tengo vacaciones, suelo viajar a destinos exóticos.

说明

步骤 1:访问网页内容
  1. 使用 tabs_context_mcp 获取可用标签页
  2. 使用 read_page 或 get_page_text 提取当前页面中的内容
  3. 如果视觉上下文有帮助,请截取屏幕截图
步骤 2:分析内容结构

识别页面上的以下元素:

  • 语法规则(包含不同时态或语气的示例)
  • 词汇表(包含定义、翻译或语境)
  • 例句(展示用法模式)
  • 练习(填空、翻译、配对)
  • 说明(规则、提示、记忆辅助)
步骤 3:提取并整理内容

使用 Markdown 标题(##、###)按类别整理抽认卡。

推荐类别(根据语言类型调整):

  • 语法模式/规则(语序、助词、连接词等)
  • 应用练习(填空、造句等)
  • 词汇(包含定义、翻译或用法语境)
  • 翻译练习(双向)
  • 快速参考问答(语法/用法规则)
  • 常见错误/纠正
  • 记忆辅助(语法模式的记忆口诀)

注意: 对于有词形变化的语言(西班牙语、俄语、阿拉伯语),请添加“变位/变格练习”。对于声调语言(普通话、越南语),请添加“声调练习”。对于使用表意文字的书写系统(日语、中文),请添加“文字识别”。

应避免的类别:

  • ❌ 故事/情节摘要(词汇/结构本身是学习目标时除外)
  • ❌ 文化趣闻或事实(用于说明语言用法时除外)
  • ❌ 与语言无关的主题知识(例如历史日期、科学事实)
  • ❌ 作者信息或网站元数据
步骤 4:创建多种卡片类型,以最大限度地增加重复练习

针对每个语法概念或词汇项,创建多种类型的卡片。请根据目标语言调整。

示例 1:西班牙语语法(有词形变化的语言)

  1. 规则卡片——呈现语法模式

    **Front:** Cuando + presente de subjuntivo (futuro)
    **Back:** Cuando me jubile, me iré a vivir a la costa.
    
  2. 填空卡片——测试变位/应用能力

    **Front:** Cuando _____ (jubilarse - yo), me _____ (ir) a vivir a la costa.
    **Back:** Cuando me jubile, me iré a vivir a la costa.
    
  3. 翻译卡片——在语境中应用

    **Front:** When I retire, I will go live on the coast.
    **Back:** Cuando me jubile, me iré a vivir a la costa.
    
  4. 快速参考卡片——测试规则知识

    **Front:** ¿Cómo se expresa el futuro con "cuando"?
    **Back:** Cuando + presente de subjuntivo
    

示例 2:日语词汇(表意文字与音节文字)

  1. 识别卡片

    **Front:** 食べる
    **Back:** たべる (taberu) - to eat [ru-verb]
    
  2. 产出卡片

    **Front:** How do you write "to eat" (ru-verb)?
    **Back:** 食べる (たべる / taberu)
    
  3. 语境卡片

    **Front:** 私は寿司を_____ (I ___ sushi)
    **Back:** 私は寿司を食べる (I eat sushi)
    

示例 3:阿拉伯语语法(词根-模式系统)

  1. 词根卡片

    **Front:** What is the root of كَتَبَ (kataba - "he wrote")?
    **Back:** ك-ت-ب (k-t-b) - root meaning "writing"
    
  2. 模式卡片

    **Front:** Form I past tense of root ك-ت-ب with "he"
    **Back:** كَتَبَ (kataba) - he wrote
    
步骤 5:应用语言学习最佳实践

语法:

  • 在多种语境中展示句型
  • 同时展示肯定和否定形式(如适用)
  • 展示边缘情况和例外
  • 制作“常见错误”纠正卡片

词汇:

  • 加入语境例句,而不只是释义
  • 展示搭配和用法模式
  • 按语义将相关词汇分组
  • 在相关情况下标注语体(正式/非正式)

语言特有的功能:

  • 屈折语(西班牙语、俄语、阿拉伯语):测试不同人称、时态、格的变位/变格
  • 声调语言(普通话、越南语):包含声调符号和最小对立体
  • 文字系统以字符为基础的语言(日语、中文):制作识别卡片(字符 → 读音/含义)
  • 黏着语(土耳其语、芬兰语):练习后缀组合
  • 分析语(英语、汉语语法):重点关注语序和助词

应用练习:

  • 使用带提示的填空题格式(不定式、声调、字符读音等)
  • 从易到难逐步推进
  • 在后续部分混合不同概念
步骤 6:验证质量

定稿前,请验证:

  • 所有卡片都严格使用 **Front:** 和 **Back:** 格式
  • Front 和 Back 位于连续两行
  • 内容按逻辑类别组织,并带有标题
  • 语法规则准确
  • 例句展示了正确的用法模式
  • 填空练习包含适当提示(动词不定式、声调符号、读音等)
  • 难度循序渐进(基础 → 高级)
  • 卡片类型多样(规则、练习、翻译、问答)
  • 特殊字符正确(按语言需要使用重音符号、声调符号、变音符号等)
  • 综合主题至少包含 50 张卡片
步骤 7:保存输出文件
  • 使用描述性文件名:<topic>.md
  • 写入 flashcards/ 目录
  • 添加包含标题和说明的页眉
  • 添加源页面的 URL
  • 在末尾添加学习策略部分
步骤 8:转换为 Anki 格式(必需)

重要:此步骤不可跳过。必须自动完成。

创建 Markdown 文件后:

  1. 立即运行转换脚本:

    python3 parse_flashcards.py flashcards/<filename>.md
    
    • 不要只告诉用户运行脚本——要亲自运行
    • 这是完成任务的必需步骤
  2. 验证输出:

    wc -l flashcards/<filename>.txt
    
    • 检查卡片是否已成功创建

为何此步骤很重要:用户期望获得完整、可直接使用的 Anki 牌组文件。只创建 Markdown 文件意味着工作尚未完成。务必完成转换。

步骤 9:向用户报告结果

成功转换为 Anki 格式后,告知用户:

  1. 创建的文件:

    • Markdown 源文件:flashcards/<filename>.md
    • Anki 牌组文件:flashcards/<filename>.txt,包含 [X] 张闪卡
  2. 后续步骤:

    • 可直接导入:.txt 文件可直接导入 Anki
    • 可选的语法检查:“如需验证语法,请让子 Agent 审阅 Markdown 文件”

内容提取策略

⚠️ 关键:关注语言,而非内容

仅提取可复用的语言要素:语法、词汇和用法模式。

问问自己:“这张卡片能帮助我使用这门语言,还是只会让我记住有关内容的事实?”

✅ 应提取:

  • 语法模式和规则
  • 带翻译或释义的词汇
  • 用法示例和搭配
  • 语言特有的惯例(正式程度、语域等)

❌ 不要提取:

  • 情节摘要或故事内容(除非词汇或结构本身就是学习目标)
  • 顺带提及的文化或历史事实
  • 无法迁移到其他情境的主题知识
  • 网站导航或课程结构信息

以下内容不应纳入:

  • “[故事概念]有哪些阶段?”——这是内容知识,而非语言知识
  • “谁发明了[理论]?”——这是冷知识,而非语言学习
  • “[主题相关术语]是什么意思?”——除非它是广泛使用的词汇

以下内容应纳入:

  • “Cuando + 虚拟式现在时”——语法模式(西班牙语)
  • “食べる (taberu) - to eat”——带读音的词汇(日语)
  • “如何用 ‘cuando’ 表达将来时间”——语言用法规则
优先提取的内容
  1. 带示例的语法模式——对语言学习价值最高
  2. 动词变位表——转换为填空练习
  3. 词汇和短语——附翻译和语境
  4. 例句——原样使用,或转换为翻译练习
  5. 语言规则和解释——转换为问答形式
  6. 常见错误部分——制作纠错卡片
  7. 习语表达——附用法示例
应跳过或尽量减少的内容
  • ❌ 长篇阅读材料(不适合制作闪卡)
  • ❌ 复杂的多段落解释(仅概括语言方面的内容)
  • ❌ 导航元素、广告、网站元数据
  • ❌ 作者简介、课程宣传
  • ❌ 特定内容的信息(作为语境的故事、情节、文化事实)
  • ❌ 无法帮助学习语言本身的主题知识
处理不同类型的内容

语法课程:

  • 提取规则说明
  • 收集所有例句
  • 创建不同时态的变化形式
  • 明确标注例外情况

词汇表:

  • 单词 + 定义或翻译
  • 单词在语境句中的用法
  • 搭配

练习:

  • 将选择题转换为填空题
  • 提取正确答案
  • 如有解释,也一并提供

Markdown 示例输出结构

# [Topic Name] - Flashcards for Spaced Repetition

**Source:** [URL of the original page]

**Topics Covered:**
- [List of grammar/vocabulary topics]

---

## Grammar Patterns - [Concept Name]

**Front:** [Pattern description or rule]
**Back:** [Example demonstrating usage]

**Front:** [Variation or related pattern]
**Back:** [Example showing difference]

**Key rule:** [Important note or exception]

---

## Application Exercises

**Front:** [Prompt with blank or transformation task]
**Back:** [Correct answer with explanation if needed]

**Front:** [Another exercise]
**Back:** [Answer]

---

## Vocabulary

**Front:** [Word/phrase in target language]
**Back:** [Definition/translation + example sentence]

**Front:** [Another word]
**Back:** [Definition + context]

---

## Translation Practice

**Front:** [Sentence in native language]
**Back:** [Sentence in target language]

**Front:** [Another sentence]
**Back:** [Translation]

---

## Quick Reference

**Front:** [Question about usage/grammar]
**Back:** [Rule or explanation]

---

## Common Mistakes

**Front:** ❌ [Incorrect usage] → ✅ ?
**Back:** ✅ [Correct usage] ([explanation])

---

## Memory Aids

**Front:** [Question about remembering pattern]
**Back:** [Mnemonic or memory trick]

---

## Study Notes

- Study strategy tips
- Recommended order
- Focus areas

Good luck with your studies! 🎯

应避免的常见问题

  1. 关键词错误——未准确使用 **Front:** 和 **Back:**
  2. 行合并——将 Front 和 Back 放在同一行
  3. 文字过多——卡片过长(控制在 2-3 个句子以内)
  4. 缺少组织——未使用标题对卡片进行分类
  5. 缺少提示——填空题未提示动词或时态
  6. 缺少多样性——只使用一种卡片类型(需要操练、问答、翻译等)
  7. 跳过校验——未检查重音符号和语法
  8. 顺序混乱——未按难度或类别整理

示例

示例:完整工作流

用户请求:“从这个介绍时间表达的西班牙语语法页面创建抽认卡”

Claude 的处理过程:

  1. 访问内容:使用 tabs_context_mcp 和 get_page_text
  2. 分析:识别出包含 6 个主要概念的时间连接词课程
  3. 提取语言要素:
    • ✅ 语法模式(cuando、antes de、mientras 等)
    • ✅ 展示用法的例句
    • ✅ 词汇(valiente、cruel 等)
    • ❌ 跳过:用作示例的故事内容(提取语言,不提取情节)
    • ❌ 跳过:页面中提及的理论或概念相关的趣闻
  4. 组织内容:
    • 附带不同时态例句的语法规则
    • 带翻译的词汇
    • 填空应用练习
    • 翻译练习
    • 快速参考问答
    • 常见错误
    • 记忆辅助
  5. 编写文件:flashcards/temporal-connectors.md
  6. 转换:运行 python3 parse_flashcards.py flashcards/temporal-connectors.md
  7. 验证:检查行数,确认已创建 153 张抽认卡
  8. 报告:“已创建 temporal-connectors.txt,其中有 153 张抽认卡,可导入 Anki”
示例:抽认卡格式

具体格式要求请参见上文的“关键:Markdown 格式要求”部分。

核心原则

最大化重复练习价值:从不同角度(规则、练习、翻译、问答)为同一概念创建多张卡片。

循序渐进:从基础模式开始,逐步过渡到复杂应用。

重视语境,而非死记硬背:始终包含例句,而不只是孤立的规则或定义。

评论

支持 Markdown