kerrickstaley / genanki

A Python 3 library for generating Anki decks
MIT License
1.99k stars 150 forks source link

How can I apply cloze? #57

Closed gelodefaultbrain closed 3 years ago

gelodefaultbrain commented 3 years ago

Hello! Thank you for this library :) really been helpful!

May I ask on how can I apply cloze. I am trying to read this data from google doc but when I generate a deck, it doesn't work

image

Instead I get this

image

Here is the code where I generate the deck. Thank you

model = genanki.Model(1607392319,'USC1 Sample Model',
        fields=[
            {'name': 'Question'},
            {'name': 'Answer'}
        ],
        templates=[
            {
                'name': 'Card 1',
                'qfmt': '{{Question}}',
                'afmt': '{{FrontSide}}<hr id="answer">{{Answer}}',
            },

        ])

    deck = genanki.Deck(2059400110,'USC1 Beta Deck')

    for key,value in output_dict.items():
        if isinstance(value,Mapping) == True:
            for subkey,subvalue in value.items():
                answer = subkey
                if subvalue:
                    answer = f"{subkey} <ul>"+ ''.join([f"<li>{sa}</li>" for sa in subvalue]) + "<ul>"

                note = genanki.Note(
                    model=model,
                    fields=[key,answer])

                deck.add_note(note)
kerrickstaley commented 3 years ago

There is an example of how to use Cloze models in the unit tests here. You need to set model_type when you create the Model.