Un poco de código.
Algo que recordar.

Explora el código, voltea las tarjetas y abre los mazos generados en Anki. Estas vistas previas usan los mismos campos que los archivos descargables.

Basic

Un saludo en español con una pregunta, una respuesta y un ID estable explícito. Empieza aquí para crear tarjetas sencillas de anverso y reverso.

basic.rsFragmento de Rust
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")))?;

Spanish
Español → inglés

hola

¿Qué significa?
Descargar spanish.apkg 1 nota · 1 tarjeta · 0 archivos multimedia

Cloze

Oculta una palabra en su contexto con la sintaxis Cloze de Anki. Esta nota tiene un solo hueco, por lo que genera una tarjeta.

cloze.rsFragmento de Rust
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")))?;

Sound
Completa la frase

A sound's pitch depends on its […].

Descargar sound.apkg 1 nota · 1 tarjeta · 0 archivos multimedia

Multimedia

Una imagen y un tono reproducible incluidos con la nota. El fragmento usa un tipo de nota para entrenamiento auditivo definido en el código completo.

media.rsFragmento de Rust
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")))?;

Ear Training
Entrenamiento auditivo

Name this pitch.

Representación de la onda de un tono sintetizado
Descargar ear-training.apkg 1 nota · 1 tarjeta · 2 archivos multimedia

Oclusión de imágenes

Una máscara rectangular con una clave estable oculta el núcleo en un dibujo en corte de una célula. El mazo descargable usa la misma imagen y máscara que esta vista previa.

occlusion.rsFragmento de Rust
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"))

Cell Anatomy
Anatomía celular

Which structure is hidden?

Corte de una célula animal con una estructura oculta
Descargar cell-anatomy.apkg 1 nota · 1 tarjeta · 1 archivo multimedia

Una nota, dos versiones.

La segunda versión cambia la respuesta de «hello» a «hello; hi». El programa la compara con el primer paquete y comprueba que el ID de la nota no cambia.

let comparison = project.compare(CompareOptions::against(&previous))?;
ensure!(comparison.policy().allows_publication());
let built = project.build(BuildOptions::to(&next).update_from(&previous))?;

ID estable de la notaes:hola
Anverso

hola

Reverso

hello

Prueba un cambio de contenido.

Resultado de la comparación: RISK.NOTE_CHANGED (low). Política de publicación: permite este cambio.

Descargar v1Descargar v2Informe de comparación

Conserva el APKG original de distribución. Las opciones de importación y los cambios locales más recientes afectan a las actualizaciones. Guía de actualizaciones

Las opciones de importación de Anki y los cambios locales afectan a cómo se aplican las actualizaciones. Las vistas previas muestran el contenido y la identidad; Anki determina el estilo de las tarjetas y el comportamiento durante el repaso.