You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gabriel becker 972661e92a Add dictionary and meaning generation 2 years ago
src/ankimaker Add dictionary and meaning generation 2 years ago
.gitignore Add filter creation in configuration creation command. 2 years ago
LICENCE Make it an installable package. 2 years ago
README.md Create a readme. 2 years ago
pyproject.toml Make it an installable package. 2 years ago
requirements.txt Add dictionary and meaning generation 2 years ago
setup.py Create epub command. 2 years ago

README.md

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.