3.2 KiB
Ankimaker
A CLI app to generate anki decks.
Flashcards are a great tool for accelerating language learning. You can choose one from the many databases out there, developed by teachers and very conscientious people. It would be even better it is easy to create new flashcards to satisfy personalized needs. For instance, generating flashcards from your bookmarked words in google translator or dictionary add-on on your browser would be much more effective because you would focus in the words you actually are not familiar with including the ones that are more frequent in your professional or hobby contexts than in default common language use.
Usage
csv
From csv file, with configurable parameters and (media to be supported in the future).
ankimaker csv -i file.csv -o deck.apkg --conf conf.yaml
Configuration File
The configuration file required to convert csv can be generated manually or interactively with the following command:
ankimaker make-csv-config -i sample-input.csv -o custon-conf.yaml
If you want to create the configuration manually, see instruction
in Manually create configuration file
section.
Manually create configuration file
AnkimakerConfig:
header:
question_column: 'original'
answer_column: 'translation'
separators: \t
filters:
- - column: 'original language'
values: Chinese
- column: 'translation language'
values: English
- - column: 'original language'
values: English
- column: 'translation language'
values: Chinese
Explaining the fields:
- header: Row index to be used as column. Use null if nonexistent or just don't insert this field.
- question_column: Name or index of column to be used as question.
- answer_column: Name or index of the columns containing the answers. . Use null if nonexistent or just don't insert this field.
- separators: Select the character that separates cells in your csv.
- filters: This is a list of groups that will be present in your final deck. Each group is defined by a list of rules that must be fulfilled so the row will be part of the group. For instance, the following filter would keep only the rows whose 'original language' column value is Chinese.
filters:
- - column: 'original language'
values: Chinese
This other filer would keep only the rows that 'original language' column is Chinese and 'translation language' column value is any of English or French.
filters:
- - column: 'original language'
values: Chinese
- column: 'translation language'
values: [English, French]
The logic of the groups is that any row satisfying at least
one group's rule will be present in the final deck. In short,
they're reduced with or
logic. In the example bellow any row
that has 'original language' column value Chinese and any roll
that has 'translation language' column value English will be
in the final deck.
filters:
- - column: 'original language'
values: Chinese
- - column: 'translation language'
values: English
This project is only possible because of the awesome work of genanki team.