Solución:
La versión de escritorio de Anki le permitirá importar “Texto separado por tabulaciones o punto y coma. “Utilice esta opción para elegir su archivo CSV. Después de abrir el archivo, se le presentará un cuadro de diálogo que le permite personalizar cómo se importan sus datos. Una de las configuraciones es una opción que le permite elegir el delimitador. Cambiar esto a una coma, y debería funcionar para usted.
Otra forma de generar .apkg
archivos es reutilizando programáticamente la versión de escritorio con Python. Ampliar:
PYTHONPATH=/usr/share/anki: python ...
Entonces puede adaptar el siguiente ejemplo a sus necesidades:
import anki
from anki.exporting import AnkiPackageExporter
collection = anki.Collection(os.path.join(TMPDIR, 'collection.anki2'))
deck_id = collection.decks.id(FBASENAME + "_deck")
deck = collection.decks.get(deck_id)
model = collection.models.new(FBASENAME + "_model")
model['tags'].append(FBASENAME + "_tag")
model['did'] = deck_id
model['css'] = """
.card {
font-family: arial;
font-size: 20px;
text-align: center;
color: black;
background-color: white;
}
.from {
font-style: italic;
}
"""
collection.models.addField(model, collection.models.newField('en'))
collection.models.addField(model, collection.models.newField('ru'))
tmpl = collection.models.newTemplate('en -> ru')
tmpl['qfmt'] = '<div class="from">{{en}}</div>'
tmpl['afmt'] = '{{FrontSide}}nn<hr id=answer>nn{{ru}}'
collection.models.addTemplate(model, tmpl)
tmpl = collection.models.newTemplate('ru -> en')
tmpl['qfmt'] = '{{ru}}'
tmpl['afmt'] = '{{FrontSide}}nn<hr id=answer>nn<div class="from">{{en}}</div>'
collection.models.addTemplate(model, tmpl)
model['id'] = 12345678 # essential for upgrade detection
collection.models.update(model)
collection.models.setCurrent(model)
collection.models.save(model)
note = anki.notes.Note(collection, model)
note['en'] = "hello"
note['ru'] = u"[heləʊ]nint. привет"
note.guid = "xxx1"
collection.addNote(note)
note = collection.newNote()
note['en'] = "bye"
note['ru'] = u"[baɪ]nint. пока"
note.guid = "xxx2"
collection.addNote(note)
export = AnkiPackageExporter(collection)
export.exportInto(FONAME)
Mientras te quedes note.guid
y model['id']
lo mismo, puede importar la base de datos y actualizar tarjetas sin perder el progreso!
- ¿Alguna forma de construir apkg desde la línea de comandos sin GUI?
- ¿Es posible fusionar mejoras y correcciones a las tarjetas durante la importación de apkg sin perder el progreso?
ejemplos de mi código de producción:
- http://hg.defun.work/gadict/file/tip/py/gadict_srs_anki.py o copiar
- http://hg.defun.work/gadict/file/tip/obsolete/exp_anki.py o copiar