← Alle Artikel

Deinen ersten Anki-Stapel mit Rust erstellen

Von einem kurzen Rust-Programm zu einer spanischen Vokabelkarte, die du in Anki öffnen kannst.

Wenn deine Notizen bereits in einem Skript, einem Datensatz oder einer Dateisammlung liegen, kann die automatische Erzeugung eines Anki-Stapels den Erstellungsprozess leichter wiederholbar machen. Deine Quelle bleibt in Git überprüfbar, und jeder Export wird zu einem erneut ausführbaren Schritt.

Beginne mit einem Wort: hola. Wir möchten eine Karte, die vorne die spanische Begrüßung und hinten ihre englische Bedeutung zeigt.

Ein vollständiges Programm

Dies ist das minimale Rust-Beispiel des Repositorys:

use ankiforge::{BuildOptions, Note, Project};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut project = Project::new("spanish")?.default_deck("Spanish");
    project.add("es:hola", Note::basic("hola", "hello"))?;
    let output = project.build(BuildOptions::to("spanish.apkg"))?;
    println!("{}", output.artifact().path().display());
    Ok(())
}

Project::new("spanish") erzeugt den Namensraum. Note::basic("hola", "hello") erzeugt eine Basic-Notiz, project.add("es:hola", note) weist ihren stabilen Schlüssel zu, und build(BuildOptions::to(...)) schreibt das Paket.

build liefert BuildOutput erst nach erfolgreichem Abschluss. Der Operator ? reicht einen typisierten Fehler weiter, sodass Skripte mit einem Fehler enden können.

Installieren und ausführen

Im aktuellen Schnellstart findest du die Installation des veröffentlichten Pakets und den Ausführungsbefehl. Um dasselbe Programm in deinem eigenen Projekt zu verwenden, folge In deine Anwendung integrieren.

Importiere nach dem Export spanish.apkg in Anki und decke die Antwort deiner ersten Karte auf.

Das Basic-Beispiel auf dieser Website bietet ebenfalls ein Paket zum Herunterladen, wenn du zuerst das Ergebnis ansehen möchtest.

Der Notiz eine Identität geben

Die Zeichenfolge es:hola ist ein ausdrücklicher stabiler Notizschlüssel innerhalb des Namensraums spanish. Sie beschreibt, um welche Notiz es sich handelt, unabhängig von der Formulierung der Antwort. Du könntest später „hello“ zu „hello; hi“ erweitern und dieselbe ID behalten.

Verwende für jede logische Notiz eine eigene ID. Wenn deine Quelle bereits einen dauerhaften Schlüssel besitzt, etwa die ID eines Vokabeleintrags, ist das ein guter Ausgangspunkt. Vermeide es, die Identität allein aus Text abzuleiten, den du voraussichtlich bearbeiten wirst.

Für die Aktualisierung eines verteilten Stapels benötigst du auch die Veröffentlichungshistorie. Bewahre das ursprüngliche Paket der Vorgängerversion auf und folge dem dokumentierten Aktualisierungsablauf.

Über die erste Notiz hinausgehen

Erzeuge für eine weitere Begrüßung eine weitere Basic-Notiz und füge sie mit einem neuen Schlüssel hinzu. Verwende für ein fehlendes Wort in einem Satz eine Cloze-Notiz. Für umfangreichere Karten definierst du Felder und Vorlagen mit der Projekt-API und bündelst Bilder oder Audio mit den Notizen.

Die Rust-Anleitung zur Inhaltserstellung führt weiter zu Diagnostik, Medien und wiederholbaren Builds. Die Repository-Beispiele bieten ausführbare Programme, auf denen du aufbauen kannst.