# Basic- und Cloze-Karten für Anki erzeugen

Canonical page: https://ankiforge.dev/de/docs/cards/
Language: de
Description: Erzeuge Basic-Karten mit Frage und Antwort sowie Cloze-Lückentextkarten aus Code. Ein geprüftes Rust-Beispiel erstellt zwei Notizen und drei Karten.

Erzeuge Basic-Karten mit Frage und Antwort sowie Cloze-Karten mit Lückentext aus Code, statt sie einzeln in Anki anzulegen. Eine Basic-Notiz hat eine Vorder- und eine Rückseite. Eine Cloze-Notiz erzeugt für jede unterstützte Lückennummer eine Karte. Dieses Rust-Beispiel erstellt zwei Notizen und drei Karten. Python und Node.js bieten dieselben Konstruktoren `Note.basic` und `Note.cloze`; siehe [Python-API](https://ankiforge.dev/de/docs/python-api/#project-and-note-values) und [Node-API](https://ankiforge.dev/de/docs/node-api/#project-and-notes).

Führe im Stammverzeichnis des Repositorys Folgendes aus:

```sh
cargo run --locked -p ankiforge --example docs_workflow -- target/docs-examples
```

Öffne `target/docs-examples/cards.apkg` in Anki. Die Basic-Frage lautet **hola**; die Cloze-Karten verbergen getrennt **Madrid** und **Spain**.

## Notizen erstellen

Diese Funktion stammt aus dem [vollständigen ausführbaren Programm](https://github.com/morehardy/anki-forge/blob/main/anki_forge/examples/docs_workflow.rs). Die Hilfsfunktion `verify` prüft die Anzahl der Notizen, Karten und Medien in der erfolgreichen Ausgabe.

```rust
fn cards(output: &Path) -> anyhow::Result<()> {
    let mut project = Project::new("docs-spanish")?.default_deck("Spanish");
    project.add("hola", Note::basic("hola", "hello"))?;
    project.add(
        "capital",
        Note::cloze("{{c1::Madrid}} is in {{c2::Spain}}.")
            .field("back_extra", "A city and its country."),
    )?;
    let built = project.build(BuildOptions::to(output.join("cards.apkg")))?;
    verify(&built, 2, 3, 0)?;
    Ok(())
}
```

Das erste Argument von `Project::new` ist ein stabiler Namensraum. Jeder Aufruf von `add` benötigt einen stabilen Schlüssel des Quelldatensatzes. Wird derselbe Schlüssel für eine andere Notiz verwendet, schlägt der Vorgang fehl; es wird kein automatischer, inhaltsbasierter Schlüssel zugewiesen. Eine geänderte Antwort unter demselben Schlüssel bleibt dieselbe logische Notiz, wenn du eine Aktualisierung auf Basis ihrer vorherigen Verteilung erstellst.

## Text, Felder und Kartenidentität

Zeichenfolgen für Basic und Cloze sind Text. Verwende `Content::html`, um HTML bewusst einzubinden; Cloze-Lückensyntax wird weiterhin innerhalb von Text erkannt. `back_extra` ist der eingebaute Schlüssel des zusätzlichen Cloze-Feldes. Verwende dieselbe Methode `Note::field` für Text, HTML, Bilder und Audio.

Verwende `{{c1::answer}}` oder `{{c1::answer::hint}}`. Ein einfacher Satz enthält keine Cloze-Frage. Unterstützte Lückennummern reichen von 1 bis 500; Änderungen der Nummern können die Kartenidentität verändern. Prüfe solche Änderungen mit [Vergleich und Aktualisierungsrichtlinie](https://ankiforge.dev/de/docs/updates/).

Ergänze als Nächstes [Medien](https://ankiforge.dev/de/docs/media/), ein [eigenes Modell](https://ankiforge.dev/de/docs/custom-notetypes/) oder [Bildverdeckung](https://ankiforge.dev/de/docs/image-occlusion/).
