anki-creator
npx skills add https://github.com/mahdifarnaghi/skills --skill anki-creator
Agent 安装分布
Skill 文档
Anki Creator
Create vocabulary flashcard decks ready for Anki import. Generate semicolon-delimited CSV files with comprehensive word information including definitions, examples, translations, synonyms, antonyms, and grammar details.
Quick Start
# Create from pasted content
Just paste your vocabulary list and ask to create Anki cards.
# Create from file
Create Anki cards from /path/to/vocab-list.txt
# Specify language explicitly
Create Dutch Anki cards from this vocabulary list:
How It Works
- Parse your vocabulary list (from paste or file)
- Detect the source language automatically
- Generate a semicolon-delimited CSV file compatible with Anki
- Import directly into Anki
Input Format
Accept vocabulary lists in multiple flexible formats:
Format 1: Standard with examples
- word:
Example sentence(s) in the source language.
- another_word:
1. First example sentence.
2. Second example sentence.
Format 2: Without colons
- word
Example sentence.
- another_word
Example here.
Format 3: With inline translations
- word â English translation
Example sentence â English translation of example.
- Verblijfsvergunning â Residence permit
Ik heb een geldige verblijfsvergunning. â I have a valid residence permit.
Format 4: Phrases and complete sentences
- Kunt u dat alstublieft herhalen?
(Can you please repeat that?)
- Hoe laat is het?
(What time is it?)
Input may be:
- Pasted directly in chat
- Provided as a .txt file path
Parsing Rules
- Optional colons: Words may end with
:or not – both are accepted - Inline translations: Extract existing English translations from
âor-patterns instead of regenerating - Phrases as entries: Complete sentences and phrases are valid vocabulary items (not just single words)
- Example translations: When examples have appended
â English translation, split and use the provided translation - Empty examples: Entries without example sentences should have natural contextual examples generated
CSV Output Columns
| Column | Description | Required |
|---|---|---|
| Front | Word in base form (singular for nouns, infinitive for verbs) | Yes |
| Back | Empty field for user notes | Yes |
| Desc | Definition in source language | Yes |
| Desc_eng | Translation of definition to English | Yes |
| Meaning | Concise English translation of the word | Yes |
| Example | Example sentence(s) in source language | Yes |
| Example_eng | English translation of example(s) | Yes |
| Syn | Three synonyms in source language (separated by commas) | No |
| Ant | One antonym in source language | No |
| Word_type | Part of speech (noun, verb, adjective, etc.) | Yes |
| Gram | Grammatical info (article, plural, conjugations, etc.) | No |
Processing Rules
Input Parsing
- Optional colons: Handle both
- word:and- wordformats - Inline translations: When input contains
word â translation, extract and use the provided translation directly - Example translations: When examples contain
â English text, extract and use for Example_eng field - Phrases: For complete sentences/phrases as entries, treat the entire phrase as the Front field
- Mixed formats: A single input file may contain entries in multiple formats – handle each according to its pattern
Front Field
- Convert plural nouns to singular form
- Convert conjugated verbs to infinitive
- For uninflectable words, retain the form given
- Remove any articles unless they’re part of an idiom
- For phrases/sentences: keep the original form as-is (do not simplify)
Example Field
- Use ALL provided example sentences
- If multiple examples exist, separate with
| - If no examples provided, create natural, contextual examples
- Number examples in Example_eng if multiple exist (1. …, 2. …)
Gram Field by Word Type
Nouns:
- Specify article (de/het/der/die/la/el/los/etc. based on language)
- Include plural form
Verbs:
- Past tense form(s)
- Past participle form
- Auxiliary verb (hebben/zijn/have/been/etc.)
Adverbs:
- Type: Causal, Contrasting, Temporal, Additive, or Conditional/Alternative
Conjunctions:
- Coordinating or Subordinating
Other types:
- Brief descriptive label as appropriate
Synonyms and Antonyms
- Provide up to 3 synonyms when applicable (comma-separated)
- Provide 1 antonym when applicable
- Use “geen antoniem”, “no antonym”, or language equivalent when none exists
- Use “geen synoniemen”, “no synonyms”, or language equivalent when none exist
Language Handling
Detect source language from input. Common indicators:
| Language | Article Pattern | Example |
|---|---|---|
| Dutch | de/het | de auto, het huis |
| German | der/die/das | der Hund, die Katze |
| Spanish | el/la/los/las | el libro, la mesa |
| French | le/la/les | le chat, la maison |
| Italian | il/la/i/gli/lo | il ragazzo, la donna |
| Portuguese | o/a/os/as | o livro, a casa |
| Swedish | en/ett | en bil, ett hus |
Adapt output language and grammatical categories accordingly.
Output
Generate a UTF-8 encoded CSV file with semicolon delimiters (Anki-compatible). Filename format: anki-vocab-[language]-[timestamp].csv
Example output structure:
Front;Back;Desc;Desc_eng;Meaning;Example;Example_eng;Syn;Ant;Word_type;Gram
hoop;;veel;erg veel;a lot;Er zijn een hoop dingen veranderd.;There are a lot of things changed.;veel,menigte,stuk;weinig;noun;de hoop
lopen;;gaan te voet;to go on foot;Ik loop naar school.;I walk to school.;stappen,driften,wandelen;rennen;verb;liep, gelopen, hebben
Importing into Anki
- Open Anki
- Go to File â Import (or press
Ctrl/Cmd + I) - Select the generated CSV file
- Configure import settings:
- Type: Select your note type or create a new one matching the columns
- Deck: Choose target deck
- Delimiter: Semicolon (
;)
- Click Import to add cards to your deck
Creating a Custom Note Type
If you don’t have a matching note type:
- Go to Tools â Manage Note Types
- Click Add â Add: Basic
- Rename to “Vocabulary Card”
- Go to Fields and add all required fields
- Go to Cards to design your card template
- Use
{{Front}},{{Back}},{{Example}}, etc. in templates
Troubleshooting
Issue: Import fails with encoding errors
- Ensure the CSV file is UTF-8 encoded
- Check that special characters (accents, umlauts) are preserved
Issue: Cards don’t display correctly
- Verify the semicolon delimiter is selected in Anki import dialog
- Check that column names match your note type fields exactly
Issue: Examples are cut off
- Anki handles long text fields well, but consider splitting very long examples
Issue: Language detection is wrong
- Specify the language explicitly in your request
- Add language-specific context (e.g., “Dutch vocabulary list”)
Examples
Dutch Vocabulary (Mixed Format)
- naturalisatie
- naturalisatieaanvraag
Ik heb een afspraak voor een naturalisatieaanvraag.
De kosten voor de naturalisatieaanvraag zijn â¬1790.
- Verblijfsvergunning â Residence permit
Ik heb een geldige verblijfsvergunning. â I have a valid residence permit.
- Kunt u dat alstublieft herhalen?
- Kunt u iets langzamer spreken, alstublieft?
Output handles:
- Words without colons (
naturalisatie) - Words with multiple examples (
naturalisatieaanvraag) - Inline translations (
Verblijfsvergunning â Residence permit) - Complete phrases as vocabulary items (
Kunt u dat alstublieft herhalen?)
Standard Dutch Vocabulary
- de appel:
Ik eet elke dag een appel.
- lopen:
1. Ik loop naar school.
2. Wij lopen in het park.
- groot:
Dit is een groot huis.
Output includes: Dutch articles, verb conjugations (lopen â liep/gelopen), and appropriate grammatical gender.
Spanish Vocabulary
- el libro:
Leo un libro interesante.
- hablar:
1. ¿Puedes hablar más despacio?
2. Me gusta hablar con amigos.
Output includes: Spanish articles, verb infinitives, and grammatical gender.
Tips
- Group related words together (e.g., all food vocabulary, all verbs)
- Include context-specific examples for better retention
- Review generated CSV before importing to catch any parsing errors
- Use tags in Anki to organize cards by topic or difficulty level
- Consider adding audio fields later for pronunciation practice