Um pouco de código.
Algo para lembrar.
Explore o código, vire os cartões e abra os baralhos gerados no Anki. Estas prévias usam os mesmos campos dos arquivos para download.
Basic
Uma saudação em espanhol com pergunta, resposta e ID estável explícito. Comece aqui para criar cartões simples de frente e verso.
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
O que isso significa?Pergunta exibida.
Cloze
Oculte uma palavra no contexto com a sintaxe Cloze do Anki. Esta nota tem uma lacuna e, por isso, gera um cartão.
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 […].
Pergunta exibida.
Mídia
Uma imagem e um tom que pode ser reproduzido, incluídos no pacote com a nota. O trecho usa um tipo de nota para treinamento auditivo definido no código completo.
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.
Pergunta exibida.
Oclusão de imagem
Um retângulo com chave estável oculta o núcleo na ilustração de uma célula em corte. O baralho para download usa a mesma imagem e máscara desta prévia.
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?

Pergunta exibida.
Uma nota, duas versões.
A segunda versão altera a resposta de “hello” para “hello; hi”. O programa compara o resultado com o primeiro pacote e verifica se o ID da nota foi mantido.
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
Experimente alterar o conteúdo.
Comparação real: RISK.NOTE_CHANGED (low). Política de publicação: permite esta alteração.
Baixar v1Baixar v2Relatório de comparaçãoGuarde o APKG original distribuído. As opções de importação e as edições locais mais recentes afetam as atualizações. Guia de atualização
As opções de importação do Anki e as edições locais afetam a aplicação das atualizações. As prévias mostram o conteúdo e a identidade; o estilo dos cartões e o comportamento de revisão dependem do Anki.