Ein wenig Code.
Karten zum Lernen.
Erkunde den Quellcode, drehe die Karten um und öffne die erzeugten Stapel in Anki. Diese Webvorschauen verwenden dieselben Felder wie die Downloads.
Basic
Eine spanische Begrüßung mit Frage, Antwort und ausdrücklicher stabiler ID. Beginne hier für einfache Karten mit Vorder- und Rückseite.
let (front, back) = ("hola", "hello");
let mut project = Project::new("spanish")?.default_deck("Spanish");
project.add("es:hola", Note::basic(front, back))?;
let built = project.build(BuildOptions::to(output.join("spanish.apkg")))?;hola
Was bedeutet das?Frage angezeigt.
Cloze
Verbirg mit Ankis Cloze-Syntax ein Wort im Kontext. Diese Notiz hat eine Lücke und erzeugt deshalb eine Karte.
let text = "A sound's pitch depends on its {{c1::frequency}}.";
let extra = "More cycles per second, higher pitch.";
let mut project = Project::new("website-sound")?.default_deck("Sound");
project.add("sound:pitch", Note::cloze(text).field("back_extra", extra))?;
let built = project.build(BuildOptions::to(output.join("sound.apkg")))?;A sound's pitch depends on its […].
Frage angezeigt.
Medien
Ein Bild und ein abspielbarer Ton, zusammen mit der Notiz gebündelt. Dieser Ausschnitt verwendet einen im vollständigen Quellcode definierten Notiztyp zur Gehörbildung.
let (prompt, answer) = ("Name this pitch.", "A4, 440 Hz");
let picture = Media::file(output.join("waveform.svg"))?.with_export_name("waveform.svg")?;
let audio = Media::file(output.join("concert-a.wav"))?.with_export_name("concert-a.wav")?;
project.add(
"sound:a4",
model
.note()
.field("prompt", prompt)
.field("answer", answer)
.field("picture", picture.image())
.field("audio", audio.sound()),
)?;
let built = project.build(BuildOptions::to(output.join("ear-training.apkg")))?;Name this pitch.
Frage angezeigt.
Bildverdeckung
Ein Rechteck mit stabilem Schlüssel verdeckt den Zellkern in einem illustrierten Zellquerschnitt. Der herunterladbare Stapel verwendet dasselbe Bild und dieselbe Maske wie diese Vorschau.
let image =
Media::file(output.join("cell-anatomy.png"))?.with_export_name("cell-anatomy.png")?;
Ok(Note::image_occlusion(image)
.mask(Mask::rect("nucleus", 296, 106, 240, 232))
.build()?
.field("header", "Cell anatomy")
.field("back_extra", "Nucleus"))Which structure is hidden?

Frage angezeigt.
Eine Notiz, zwei Versionen.
Der zweite Build ändert die Antwort von „hello“ zu „hello; hi“. Das Programm vergleicht das Ergebnis mit dem ersten Paket und prüft, ob die Notiz-ID gleich geblieben ist.
let comparison = project.compare(CompareOptions::against(&previous))?;
ensure!(comparison.policy().allows_publication());
let built = project.build(BuildOptions::to(&next).update_from(&previous))?;es:holahola
hello
Eine Inhaltsänderung ausprobieren.
Vergleichsergebnis: RISK.NOTE_CHANGED (low). Veröffentlichungsrichtlinie: erlaubt diese Änderung.
v1 herunterladenv2 herunterladenVergleichsberichtBewahre das ursprünglich verteilte APKG auf. Importeinstellungen und neuere lokale Änderungen beeinflussen Aktualisierungen. Aktualisierungsanleitung
Ankis Importeinstellungen und lokale Änderungen beeinflussen, wie Aktualisierungen angewendet werden. Die Vorschau zeigt Inhalte und IDs; wie die Karten aussehen und beim Lernen angezeigt werden, bestimmt Anki.