Zum Inhalt springen

Von genanki zu Anki Forge wechseln

Du wählst noch eine Bibliothek aus? Lies Anki Forge im Vergleich zu genanki.

Anki Forge verwendet stabile Datenschlüssel, validierte unveränderliche Modelle, Mediensnapshots mit eigenem Datenbesitz und ausdrückliche Build- und Aktualisierungsvorgänge. Das ist ein neues Modell zur Inhaltserstellung; es bildet weder genanki-Objekte noch die entfernten Deck-/Lockfile-Schnittstellen von Anki Forge nach.

genanki-Konzept Entsprechung in Anki Forge
Modell mit numerischer ID NoteType.builder(stable_key)...build()
Feldnamen als Bezeichner Stabile Field-Schlüssel und separate Anzeigenamen
Notiz mit Feldzeichenfolgen model.note().field(key, content) mit eigenem Modellbesitz
Stapel als Notizcontainer Project mit Standardstapel; optional .deck(name) pro Notiz
Dateipfade für Paketmedien Media.file(path)-Werte mit eigenem Datenbesitz, automatisch über typisierte Inhalte gesammelt
Paket schreiben project.build(BuildOptions.to(path))
Aus Feldern abgeleitete Standard-GUID oder eigene GUID-Regel Ausdrücklicher stabiler Namensraum und Notizschlüssel
from ankiforge import Project, NoteType, Field, Template, BuildOptions
model = (NoteType.builder('vocabulary').name('Vocabulary')
.field(Field('word', name='Word', required=True))
.field(Field('meaning', name='Meaning'))
.template(Template('recognition', '{{word}}', '{{FrontSide}}<hr>{{meaning}}'))
.build())
project = Project('vocabulary-course', default_deck='Languages::Vocabulary')
project.add('dictionary:cell', model.note().field('word', 'cell').field('meaning', '细胞'))
project.build(BuildOptions.to('vocabulary.apkg'))

Wähle Schlüssel aus dauerhaften fachlichen Bezeichnern. Das Umbenennen eines Anzeigenamens oder das Ändern eines Definitionstextes darf diese Schlüssel nicht ändern. Bilde keinen Hash aus den aktuellen Feldinhalten, es sei denn, eine inhaltsadressierte Identität ist eine ausdrückliche Anforderung deines Importers. Bei Quelldaten ohne Schlüssel musst du diese außerhalb des SDK zuweisen und dauerhaft speichern.

Vorlagenausdrücke verwenden Field-Schlüssel. Anzeigenamen können unabhängig davon übersetzt werden; die Bibliothek übersetzt Schlüsselreferenzen in Anki-Feldnamen. Beim Abschluss eines Modells werden fehlende oder widersprüchliche Deklarationen zurückgewiesen, bevor eine Notiz hinzugefügt werden kann. Das Hinzufügen von Notizen sammelt Modellabhängigkeiten automatisch und weist widersprüchliche Definitionen unter demselben Modellschlüssel zurück.

Zeichenfolgen sind Klartext; umschließe ausdrücklich gewünschtes HTML mit Content.html(...). Verwende media.image() / media.sound() und Content.sequence(...), um Inhalte zu kombinieren. Dateisnapshots bleiben erhalten, wenn der ursprüngliche Pfad gelöscht oder verändert wird. Deklariere Abhängigkeiten aus direkt eingebundenem HTML, CSS oder Skripten ausdrücklich mit .asset(media) am Modell-Builder oder project.add_asset(media).

Erzeuge für spätere Veröffentlichungen ein neues Project mit demselben Namensraum und denselben Datenschlüsseln und rufe BuildOptions.to(next_path).update_from(previous_original_apkg) auf. Das ursprüngliche APKG liefert die vollständigen Identitätsnachweise. Dieser Ablauf stellt keine Identität aus beliebigen älteren Paketen wieder her und verspricht keine automatische Umwandlung vorhandener numerischer genanki-IDs oder GUIDs. Behandle die erste Verteilung mit dem neuen Modell als bewussten Identitätswechsel, sofern nicht eine separat validierte Datenmigration die Zuordnung nachweist.

Siehe Schnellstart, API-Referenz und Aktualisierungsrichtlinie.

Markdown anzeigen