# Crie seu primeiro baralho Anki com Rust

Canonical page: https://ankiforge.dev/pt-br/blog/your-first-anki-deck/
Language: pt-BR
Description: De um pequeno programa em Rust a um cartão de vocabulário em espanhol que você pode abrir no Anki.
Published: 2026-09-22T00:00:00.000Z

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:

```rust
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](https://ankiforge.dev/pt-br/docs/quickstart/) 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](https://ankiforge.dev/pt-br/docs/installation/).

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

O [exemplo Basic deste site](https://ankiforge.dev/pt-br/examples/#basic) 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](https://ankiforge.dev/pt-br/docs/updates/).

## 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](https://ankiforge.dev/pt-br/examples/#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](https://ankiforge.dev/pt-br/docs/rust-guide/) avança para diagnósticos, mídia e gerações repetíveis. Os [exemplos do repositório](https://github.com/morehardy/anki-forge/tree/main/anki_forge/examples) oferecem programas executáveis que você pode ampliar.
