← Todos os artigos

Crie seu primeiro baralho Anki com Rust

De um pequeno programa em Rust a um cartão de vocabulário em espanhol que você pode abrir no Anki.

Quando suas notas já estão em um script, um conjunto de dados ou uma coleção de arquivos, gerar um baralho Anki pode facilitar a repetição do processo de criação. O código-fonte continua disponível para revisão no Git, e cada exportação se torna uma etapa que você pode executar novamente.

Comece com uma palavra: hola. Queremos um cartão com a saudação em espanhol na frente e seu significado em inglês no verso.

Um programa completo

Este é o exemplo mínimo em Rust do repositório:

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") cria o namespace. Note::basic("hola", "hello") cria uma nota Basic, project.add("es:hola", note) atribui sua chave estável, e build(BuildOptions::to(...)) grava o pacote.

build retorna BuildOutput somente após o sucesso. O operador ? propaga uma falha tipada para que scripts possam encerrar com erro.

Instale e execute

Siga o guia de início rápido atual para instalar o pacote público e consultar o comando de execução. Para usar o mesmo programa no seu projeto, siga Integre à sua aplicação.

Após a exportação, importe spanish.apkg no Anki e revele a resposta do seu primeiro cartão.

O exemplo Basic deste site também oferece um pacote para baixar, caso você queira examinar o resultado primeiro.

Dê uma identidade à nota

A string es:hola é uma chave estável e explícita da nota dentro do namespace spanish. Ela identifica qual nota é essa, independentemente de como a resposta é escrita. Você pode, por exemplo, expandir “hello” para “hello; hi” mais tarde e manter o mesmo ID.

Use um ID diferente para cada nota lógica. Se a origem já tiver uma chave durável, como o ID de uma entrada de vocabulário, esse é um bom ponto de partida. Evite derivar a identidade somente de um texto que você pretende editar.

Atualizar um baralho distribuído também exige um histórico de versões. Mantenha o pacote original anterior e siga o fluxo de atualização documentado.

Vá além da primeira nota

Para outra saudação, crie outra nota Basic e adicione-a com uma chave nova. Para ocultar uma palavra em uma frase, use uma nota Cloze. Para cartões mais completos, defina campos e templates com a API do projeto e inclua imagens ou áudio junto com as notas.

O guia de criação com Rust avança para diagnósticos, mídia e gerações repetíveis. Os exemplos do repositório oferecem programas executáveis que você pode ampliar.