Pular para o conteúdo

Mensagens de erro

Markdown para LLMs (em inglês)llms.txt

O compilador da Ribalta nunca para no primeiro problema: ele sempre gera o melhor documento possível e uma lista de diagnósticos. Cada diagnóstico tem:

ParteExemplo
GravidadeErro (algo foi descartado ou não funciona) ou aviso (funciona, mas provavelmente não como você queria).
CódigoR209. O código é estável e não muda entre versões.
PosiçãoLinha e coluna do trecho com problema.
Mensagematributo desconhecido: colr
DicaVocê quis dizer color?

Erros dentro de um componente são indicados na linha onde o componente é usado, com o sufixo “(no componente nome)”. Erros em um @style aparecem uma vez, na definição, e não em cada uso.

FamíliaAssunto
F1xxEstrutura: blocos, tabelas, código, gráficos e ícones.
F2xxAtributos: sintaxe das chaves, estilos e nomes de atributos.
F3xxValores de atributos.
F4xxComponentes e espaços nomeados.
F5xxDefinições do preâmbulo e tema base.
F6xxVariáveis, dados, expressões, repetição e estado.
F7xxNavegação entre páginas.

Erro. Mensagem: ::: fecha um bloco, mas nenhum bloco está aberto aqui.

Um ::: sozinho na linha fecha o último bloco aberto. Aqui não há nenhum bloco aberto, geralmente porque há um ::: a mais.

# Resultados
Crescemos 38%.
:::

Como corrigir: remova a linha ou abra um bloco antes dela, como ::: columns.

Erro. Mensagem: o bloco columns foi aberto mas nunca fechado.

Todo bloco aberto com ::: nome precisa de uma linha ::: que o feche. Cada página é lida separadamente, então o bloco precisa ser fechado antes do próximo ---.

::: columns
Esquerda
Direita

Como corrigir: adicione uma linha contendo apenas ::: no fim do bloco.

Erro. Mensagem: @theme só pode ser usado no início do documento, antes da primeira página.

Definições com @ (@title, @theme, @color, @style, @component e as demais) só valem no preâmbulo. Depois que a primeira página começa, elas são descartadas.

# Abertura
---
@theme ink
# Segunda página

Como corrigir: mova a definição para o topo do arquivo, antes de qualquer conteúdo.

Erro. Mensagem: falta o nome do bloco depois de :::.

Uma linha que começa com ::: ou :: e tem outro conteúdo precisa ter o nome do bloco logo em seguida.

::: {.card}
Texto
:::

Como corrigir: escreva o nome do bloco antes dos atributos, como ::: box {.card}.

Erro. Mensagem: bloco de código sem fechamento.

Um bloco de código aberto com ``` precisa de outra linha com ``` para terminar. Sem ela, todo o resto da página vira código.

```js
console.log("oi")

Como corrigir: feche o bloco com uma linha contendo ```.

Erro. Mensagem: tabela sem linha separadora depois do cabeçalho.

A segunda linha de uma tabela precisa ser a linha separadora, que divide o cabeçalho dos dados.

| Produto | Preço |
| Café | 12 |

Como corrigir: adicione uma linha como | --- | --- | logo abaixo do cabeçalho.

R107 · Linha de tabela com outro número de colunas

Seção intitulada “R107 · Linha de tabela com outro número de colunas”

Aviso. Mensagem: esta linha tem 3 colunas, mas o cabeçalho tem 2.

Uma linha da tabela tem mais ou menos células que o cabeçalho.

| Produto | Preço |
| --- | --- |
| Café | 12 | extra |

Como corrigir: deixe todas as linhas com o mesmo número de células do cabeçalho. Para escrever | dentro de uma célula, use \|.

Erro. Mensagem: bloco desconhecido: colums.

O nome depois de ::: ou :: não é um bloco embutido nem um componente definido no documento ou no tema base. A dica sugere o nome mais parecido.

::: colums
Texto
:::

Como corrigir: corrija o nome (aqui, columns) ou defina o componente com @component. Veja a lista em Blocos.

Aviso. Mensagem: divider não aceita conteúdo; use :: divider em uma linha só.

icon, spacer e divider não têm conteúdo. Abertos com :::, o conteúdo entre eles e o ::: de fechamento é ignorado.

::: divider
Texto
:::

Como corrigir: use a forma de uma linha, :: divider, e coloque o texto fora do bloco.

Aviso. Mensagem: o texto 3 depois de grid será ignorado.

Só icon e spacer recebem um valor depois do nome. Nos outros blocos embutidos, o texto solto é ignorado.

::: grid 3
A
B
C
:::

Como corrigir: use atributos entre chaves, como ::: grid {cols=3}.

Erro. Mensagem: o gráfico precisa de uma tabela com os dados.

O bloco chart desenha os dados de uma tabela Markdown que fica dentro dele. Sem tabela, o gráfico não é desenhado.

::: chart {type=bar}
Vendas por mês
:::

Como corrigir: coloque uma tabela dentro do bloco. A primeira coluna são os rótulos e as demais são as séries. Veja Gráficos.

Erro. Mensagem: doze não é um número.

Todas as células de dados de um gráfico, fora a primeira coluna, precisam ser números. A célula inválida conta como 0.

::: chart
| Mês | Vendas |
| --- | ---: |
| Jan | doze |
:::

Como corrigir: use números como 42, 3.5 ou 3,5. Um % no fim é aceito.

Erro. Mensagem: a tabela do gráfico precisa de pelo menos uma coluna de valores.

A tabela tem só a coluna de rótulos, então não há o que desenhar.

::: chart
| Mês |
| --- |
| Jan |
:::

Como corrigir: adicione pelo menos uma coluna de valores à tabela.

Erro. Mensagem: informe o nome do ícone.

:: icon {size=3xl}

Como corrigir: escreva o nome depois de icon, como :: icon rocket {size=3xl}. Os nomes estão em Ícones.

Erro. Mensagem: ícone desconhecido: foguete.

O nome não está na lista de ícones embutidos. Quando há um nome parecido, a dica o sugere.

:: icon foguete

Como corrigir: use um nome da lista em Ícones, como rocket.

Erro. Mensagem: input precisa de bind com a variável que guarda o texto.

@state nome = ""
# Quem é você?
:: input {placeholder="Seu nome"}

Como corrigir: ligue o campo a um @state de texto ou número com bind: :: input {bind=$nome placeholder="Seu nome"}. O mesmo erro aparece quando bind não começa com $.

Erro. Mensagem: sound precisa do endereço do arquivo de áudio.

# A porta
:: sound {name=porta}

Como corrigir: escreva o endereço depois de sound: :: sound https://exemplo.com/porta.mp3 {name=porta}.

Erro. Mensagem: . precisa ser seguido de um nome.

Dentro das chaves, . precisa vir colado ao nome de um estilo e # ao nome de um id.

Texto {. color=accent}

Como corrigir: escreva o nome junto, como {.destaque} ou {#abertura}, ou remova o caractere solto.

Erro. Mensagem: aspas não fechadas no valor do atributo.

Um valor que começa com aspas precisa terminar com a mesma aspa.

![Foto](https://example.com/foto.jpg){fit="cover}

Como corrigir: feche o valor com a mesma aspa que o abriu: {fit="cover"}. No fim de títulos, parágrafos e blocos, chaves com aspas abertas não são reconhecidas como atributos e aparecem como texto na página.

Erro. Mensagem: o atributo color está sem valor depois de =.

Há um = sem nada depois. Normalmente vem acompanhado de um R301, porque o valor vazio também é inválido.

# Título {color=}

Como corrigir: informe o valor ({color=accent}) ou remova o atributo.

Erro. Mensagem: trecho inválido em atributos: @destaque.

Dentro das chaves só são aceitos .estilo, #id, chave=valor, chave="valor com espaços" e chave.

Texto {@destaque}

Como corrigir: use a forma certa, aqui {.destaque}. Nomes de atributos começam com uma letra.

Aviso. Mensagem: #id só tem efeito no separador de página e no fim de blocos.

Ids identificam páginas e blocos, para links como [voltar](#abertura). Em trechos dentro de uma linha, o id é ignorado.

Texto [destaque]{#inicio}

Como corrigir: coloque o id no separador da página, como --- {#inicio}, ou no fim da linha do bloco.

Erro. Mensagem: o estilo .laco referencia a si mesmo.

Um @style inclui a si mesmo, diretamente ou por meio de outros estilos. Como o estilo ainda não existe enquanto a própria definição é lida, o compilador também mostra um R207 no mesmo lugar.

@style laco {.laco color=accent}
Texto {.laco}

Como corrigir: remova a referência circular. Um estilo só pode incluir estilos definidos antes dele.

Erro. Mensagem: estilo desconhecido: .destaqe.

O nome depois do . não é um estilo embutido, um @style nem um token de cor. A dica sugere o nome mais parecido.

Texto {.destaqe}

Como corrigir: corrija o nome ou declare o estilo no início do documento com @style nome {atributos}. Veja os estilos embutidos.

Aviso. Mensagem: já existe outra página com o id #resumo.

Duas páginas têm o mesmo id, então um link #resumo só pode levar a um deles.

--- {#resumo}
# Resumo
--- {#resumo}
# Conclusão

Como corrigir: dê um id diferente a cada página.

Erro. Mensagem: atributo desconhecido: colr.

O nome não é um atributo de estilo nem um atributo próprio do bloco em que aparece. A dica sugere o nome mais parecido ou lista os atributos aceitos ali.

# Título {colr=coral}

Como corrigir: corrija o nome. Atributos próprios, como cols ou fit, só valem nos blocos certos. Veja Atributos.

Aviso. Mensagem: key não faz nada sem click.

A tecla aciona as ações de click do elemento; sem elas, apertar a tecla não muda nada.

# Mapa
[Norte]{key=up}

Como corrigir: diga o que a tecla faz com click: [Norte]{click="$y = $y - 1" key=up}.

Erro. Mensagem: já existe outro bloco com o id #fase, ou o id #fase já pertence a uma página.

Um id de bloco ({#fase} no fim da linha de abertura) precisa levar a um único lugar. Ele não pode se repetir nem ser igual ao id de uma página.

Primeiro {#fase}
Segundo {#fase}

Como corrigir: dê um id diferente a cada bloco.

Erro. Só aparece com o perfil lesson (ribalta check --profile lesson ou "profile": "lesson" nas opções). Mensagem: sound não é permitido em aulas.

Uma aula é só texto. O perfil recusa imagens de endereços http:// ou https://, sound, input, @persist e os atributos next e hidden das páginas.

# Fotossíntese
![Cloroplasto](https://exemplo.com/cloroplasto.png)

Como corrigir: guarde a imagem no programa em que você escreve (asset:) ou remova o recurso.

Erro. Só aparece quando o programa que compila passa um perfil inexistente nas opções. Mensagem: perfil desconhecido: aula.

As outras opções, como page, continuam valendo e o documento é compilado sem perfil.

Como corrigir: use "profile": "lesson" ou omita o campo.

Erro. Mensagem: depende do atributo, por exemplo tamanho inválido: gigante ou cor desconhecida: corall.

O atributo existe, mas o valor não é aceito. O atributo é ignorado, e a dica diz quais valores são válidos.

# Título {size=gigante color=corall}

Situações comuns:

SituaçãoExemplo inválidoExemplo válido
Cor desconhecida ou hexadecimal malformadocolor=corall, color=#12color=coral, color=#123
Opacidade de cor fora de 0 a 100color=accent/150color=accent/40
Nome fora da escala ou número fora da faixasize=gigante, pad=900size=5xl, pad=xl
Fonte não declaradafont=titulofont=display ou @font titulo …
Peso inválidoweight=450weight=500
Booleano inválidoitalic=talvezitalic ou italic=false
Alinhamento inválidoalign=middlealign=center
Sombra inválidashadow=xlshadow=lg
Borda com espessura acima de 40border="80 coral"border="4 coral"
Medida inválidaw=200%, w=metadew=50%, w=480
Atributo que precisa de valor, usado sozinho{size}{size=xl}
Endereço não permitido em link ou imagem[x](javascript:…), ![x](arquivo.png)https://…, asset:<id>
Ajuste de imagem inválidofit=stretchfit=cover
Colunas da grade fora de 1 a 12cols=20cols=4
Proporções de colunas inválidaswidths="a b"widths="2 1"
Tipo de gráfico inválidotype=radartype=line
Tamanho de spacer inválido:: spacer enorme:: spacer 3xl
Etapa fora de 1 a 99step=0step=1

Como corrigir: use um dos valores indicados na dica. As escalas e faixas completas estão em Atributos.

Aviso. Mensagem: widths tem 3 valores, mas há 1 colunas.

O número de proporções em widths é diferente do número de filhos do columns.

::: columns {widths="2 1 1"}
Esquerda
:::

Como corrigir: informe uma proporção para cada coluna, ou ajuste as colunas. Lembre que cada filho direto é uma coluna; agrupe vários elementos com ::: stack.

Erro. Mensagem: $content só pode ser usado dentro de um @component.

$content marca onde entra o conteúdo passado a um componente, então só faz sentido no corpo de um @component.

# Título
$content

Como corrigir: remova a linha ou mova-a para o corpo de um componente. Para escrever o texto literal, use \$content.

Erro. Mensagem: o componente eco usa a si mesmo.

Um componente usa a si mesmo, diretamente ou por meio de outros componentes. Componentes não têm recursão, então o uso é descartado.

@component eco
:: eco
@end
:: eco

Como corrigir: remova o uso circular do corpo do componente.

Erro. Mensagem: componentes aninhados demais (limite: 16 níveis).

Um componente usa outro, que usa outro, e assim por diante, por mais de 16 níveis. O exemplo abaixo está abreviado: com as 17 definições completas, o erro aparece no uso de n1.

@component n1
:: n2
@end
@component n2
:: n3
@end
// n3 a n16 seguem o mesmo padrão, cada um usando o seguinte
@component n17
Fim
@end
:: n1

Como corrigir: simplifique a cadeia de componentes, juntando níveis intermediários.

Erro. Mensagem: componentes recebem apenas parâmetros, não .estilos nem #id.

Ao usar um componente, as chaves só aceitam parâmetros nomeados.

@component selo {texto}
::: box {.card}
$texto
:::
@end
:: selo {.dark texto=Novo}

Como corrigir: envolva o componente num bloco com o estilo (::: box {.dark} … :: selo {texto=Novo} … :::) ou crie um parâmetro para isso.

Erro. Mensagem: o componente selo não tem o parâmetro cor.

O parâmetro não foi declarado na definição do componente. A dica lista os parâmetros existentes.

@component selo {texto}
::: box {.card}
$texto
:::
@end
:: selo {texto=Novo cor=accent}

Como corrigir: corrija o nome ou declare o parâmetro, como @component selo {texto cor=accent}.

Erro. Mensagem: componentes recebem parâmetros nomeados entre chaves.

Componentes não recebem valores posicionais: todo parâmetro precisa de nome.

@component selo {texto=Novo}
::: box {.card}
$texto
:::
@end
:: selo Promoção

Como corrigir: passe o valor como parâmetro nomeado: :: selo {texto=Promoção}.

Erro. Mensagem: falta o parâmetro obrigatório texto do componente selo.

Parâmetros declarados sem valor padrão são obrigatórios.

@component selo {texto}
::: box {.card}
$texto
:::
@end
:: selo

Como corrigir: informe o parâmetro (:: selo {texto=Novo}) ou dê a ele um valor padrão na definição (@component selo {texto=Novo}).

Erro. Mensagem: o componente selo usa $titulo, que não é um parâmetro declarado.

O corpo do componente usa $titulo no meio de um texto ou atributo, mas titulo não está na lista de parâmetros.

@component selo {texto}
::: box {.card}
## $titulo
$texto
:::
@end
:: selo {texto=Novo}

Como corrigir: declare o parâmetro (@component selo {texto titulo}) ou corrija o nome. Sozinho numa linha, $nome é um espaço nomeado e não gera este erro.

Quando o nome existe só onde o componente é usado (um @state ou @let da página, ou a variável de um ::: for), a mensagem diz que ele só existe ali: declare o parâmetro e passe o valor, como em :: selo {texto=Novo titulo=$titulo}. Os @state e @let do início do documento não precisam disso.

Aviso. Mensagem: o componente selo não usa $content; o conteúdo será ignorado.

O componente foi usado com ::: e recebeu conteúdo, mas o corpo não tem $content.

@component selo {texto}
::: box {.card}
$texto
:::
@end
::: selo {texto=Novo}
Este parágrafo é ignorado.
:::

Como corrigir: adicione $content ao corpo do componente ou use a forma de uma linha (:: selo {texto=Novo}).

Erro. Mensagem: box já é um bloco da linguagem e não pode ser redefinido.

Os nomes stack, row, columns, grid, box, steps, notes, chart, icon, spacer, divider e slot são reservados.

@component box
Texto
@end

Como corrigir: escolha outro nome, como caixa ou cartao.

Erro. Mensagem: o componente selo foi definido mais de uma vez.

O mesmo documento define dois componentes com o mesmo nome. A segunda definição é descartada.

@component selo
Novo
@end
@component selo
Promoção
@end

Como corrigir: remova uma das definições ou renomeie uma delas. Redefinir no documento um componente do tema base é permitido e não gera este erro.

Erro. Mensagem: o componente dupla não tem o espaço lado-c.

::: slot preenche um espaço que o componente não declara. A dica sugere o nome mais parecido.

@component dupla {titulo}
## $titulo
$content
$lado-b
@end
::: dupla {titulo=Comparação}
Antes
::: slot lado-c
Depois
:::
:::

Como corrigir: use o nome de um espaço existente (aqui, lado-b) ou declare o espaço no componente com $lado-c sozinho numa linha.

Erro. Mensagem: informe o nome do espaço.

@component dupla {titulo}
## $titulo
$content
$lado-b
@end
::: dupla {titulo=Comparação}
Antes
::: slot
Depois
:::
:::

Como corrigir: escreva o nome do espaço depois de slot, como ::: slot lado-b.

Erro. Mensagem: ::: slot só pode ser usado dentro de um componente.

::: slot só funciona como filho direto do uso de um componente contêiner. Fora dele, o compilador também avisa que o nome é ignorado (R110).

::: slot lado-b
Depois
:::

Como corrigir: coloque o ::: slot dentro de ::: componente … :::, ou remova o bloco.

Erro. Mensagem: o espaço lado-b foi preenchido mais de uma vez.

@component dupla {titulo}
## $titulo
$content
$lado-b
@end
::: dupla {titulo=Comparação}
::: slot lado-b
Depois
:::
::: slot lado-b
De novo
:::
:::

Como corrigir: junte o conteúdo num único ::: slot lado-b.

Erro. Mensagem: valor inválido para tipo: primari.

O parâmetro declara os valores aceitos com |, e o valor usado não está entre eles. O componente usa o primeiro valor da lista no lugar.

@component botao {texto tipo=primary|secondary}
**$texto**
@end
:: botao {texto=Enviar tipo=primari}

Como corrigir: use um dos valores declarados, como tipo=primary.

Erro. Mensagem: key não pode ser parâmetro: ele já é um atributo de quem usa o componente.

step, if, click e key são atributos que qualquer uso de componente aceita. Um parâmetro com o mesmo nome os esconderia: :: botao {key=1} preencheria o parâmetro, e o atalho de teclado sumiria.

@component botao {key texto}
**$key** $texto
@end
# Menu
:: botao {key=1 texto=Começar}

Como corrigir: dê outro nome ao parâmetro, como tecla: @component botao {tecla texto}. No uso, key=1 volta a ser o atalho.

Erro. Mensagem: @title precisa de um valor.

@title, @author, @theme, @version e @page precisam de um valor na mesma linha.

@title
# Abertura

Como corrigir: informe o valor, como @title Relatório anual, ou remova a linha.

Erro. Mensagem: @color espera um nome e um valor.

@color
# Abertura

Como corrigir: informe o nome do token e a cor, como @color marca #ff6b4a.

Erro. Mensagem: @style espera um nome e atributos.

@style destaque
# Abertura

Como corrigir: informe o nome e os atributos entre chaves, como @style destaque {color=coral weight=bold}.

Erro. Mensagem: @component sem @end (ou @header, @footer, @overlay).

Sem @end, todo o restante do documento é lido como corpo do bloco, e o documento fica sem páginas.

@component selo {texto}
::: box {.card}
$texto
:::
# Abertura

Como corrigir: termine o @component, @header, @footer ou @overlay com uma linha @end.

Erro. Mensagem: @end sem um bloco aberto.

@end
# Abertura

Como corrigir: remova o @end ou adicione antes dele o @component, @header, @footer ou @overlay que ele deveria fechar.

Erro. Mensagem: definição desconhecida: @tema.

O nome depois de @ não é uma definição da linguagem. A dica sugere a mais parecida.

@tema ink
# Abertura

Como corrigir: use uma das definições: @title, @author, @theme, @version, @page, @color, @font, @style, @component, @header, @footer, @overlay ou @end.

Erro. Mensagem: nome da fonte sem aspas de fechamento.

@font titulo "Bebas Neue 400
# Abertura

Como corrigir: feche as aspas depois do nome da família: @font titulo "Bebas Neue" 400.

Erro. Mensagem: nome de fonte inválido: Open-Sans.

O nome da família só pode ter letras, números e espaços, e não pode ser vazio.

@font titulo "Open-Sans"
# Abertura

Como corrigir: use o nome da família como aparece no Google Fonts, entre aspas: @font titulo "Open Sans".

Erro. Mensagem: peso de fonte inválido: 450.

@font titulo "Inter" 450
# Abertura

Como corrigir: use pesos de 100 a 900, de 100 em 100, como 400 ou 500.

Erro. Mensagem: @component precisa de um nome.

@component {texto}
$texto
@end

Como corrigir: escreva o nome logo depois de @component: @component selo {texto}.

Erro. Mensagem: nome de componente inválido: Selo.

Nomes de componente começam com letra minúscula e usam apenas letras minúsculas, números e hífens.

@component Selo {texto}
$texto
@end

Como corrigir: use um nome como selo ou selo-novo.

Erro. Mensagem: parâmetros de componente não aceitam .estilo nem #id.

A lista entre chaves de @component declara parâmetros, não estilos.

@component selo {.card texto}
$texto
@end

Como corrigir: remova o .estilo ou #id da lista e aplique o estilo num bloco do corpo, como ::: box {.card}.

Erro. Mensagem: tema desconhecido: dark.

O tema não existe, e o documento usa o tema paper.

@theme dark
# Abertura

Como corrigir: use paper, ink ou editorial. Veja Temas embutidos.

@theme não cria nem dá nome a um tema: ele só escolhe a base. Para ter um tema seu, mantenha uma base e ajuste com @color, @font e @style. Veja Temas.

Erro. Mensagem: versão da linguagem não suportada: 3.

@version 3
# Abertura

Como corrigir: use @version 2, a versão atual, ou remova a linha.

Erro. Mensagem: tamanho de página inválido: 16:9.

@page recebe a largura e a altura da página em pixels, separadas por x, ou nas chaves width e height. Cada medida vai de 16 a 16384, e a altura também aceita auto. Uma proporção como 16:9 não é um tamanho.

@page 16:9
# Abertura

O mesmo código aparece para width e height inválidos no separador, com as mensagens “largura de página inválida” e “altura de página inválida”, como em --- {width=10} ou --- {height=alta}.

Como corrigir: informe largura x altura, como @page 1920x1080 (16:9), @page 1440x1080 (4:3), @page 800xauto ou @page width=800 height=auto. Veja Tamanhos e documentos.

Erro. Mensagem: nome de cor inválido: Marca.

Tokens de cor começam com letra minúscula e usam apenas letras minúsculas, números e hífens.

@color Marca #ff6b4a
# Abertura

Como corrigir: use um nome como marca ou marca-escura.

Erro. Mensagem: nome de fonte inválido: Titulo.

O nome do token (a primeira palavra depois de @font) segue a mesma regra dos tokens de cor.

@font Titulo "Bebas Neue" 400
# Abertura

Como corrigir: use um nome como titulo, e aplique com {font=titulo}.

Erro. Mensagem: nome de estilo inválido: Destaque.

@style Destaque {color=accent weight=bold}
# Abertura

Como corrigir: use letras minúsculas, números e hífens, como destaque.

Erro. Mensagem: o tema base só pode ter definições, não páginas.

Aparece apenas ao compilar o tema base, nunca nos documentos. O exemplo abaixo é o texto do tema base.

@theme ink
@color marca #12a37f
# Abertura

Como corrigir: deixe no tema apenas linhas que começam com @ (como @theme, @page, @color, @font, @style e @component), além de linhas vazias e comentários. O conteúdo das páginas vai em cada documento.

Aviso. Mensagem: @title no tema base é ignorado; defina-o em cada documento.

Aparece apenas ao compilar o tema base. Título e autor são de cada documento, então são ignorados no tema.

@title Relatório anual
@theme ink

Como corrigir: remova a linha do tema e escreva @title ou @author no início de cada documento.

Erro. Mensagem: @footer foi definido mais de uma vez.

Cada documento tem um cabeçalho, um rodapé e uma camada livre. O segundo bloco é ignorado.

@footer
Confidencial
@end
@footer
$page / $pages
@end
# Abertura

Como corrigir: junte o conteúdo em um único bloco, por exemplo com ::: columns. Veja Cabeçalho e rodapé.

R522 · Campo desconhecido no cabeçalho, rodapé ou camada livre

Seção intitulada “R522 · Campo desconhecido no cabeçalho, rodapé ou camada livre”

Erro. Mensagem: @footer usa $pagina, que não é um campo disponível.

Dentro de @header, @footer e @overlay, $ seguido de um nome é um campo automático. A dica sugere o campo mais parecido.

@footer
Página $pagina
@end
# Abertura
---
# Agenda

Como corrigir: use um dos campos: $page, $pages, $title, $author ou $date.

R523 · Revelação passo a passo no cabeçalho, rodapé ou camada livre

Seção intitulada “R523 · Revelação passo a passo no cabeçalho, rodapé ou camada livre”

Aviso. Mensagem: @footer aparece sempre inteiro; step e ::: steps são ignorados nele.

@footer
::: steps
- Primeiro
- Segundo
:::
@end
# Abertura
---
# Agenda

Como corrigir: tire step e ::: steps do bloco. Para revelar algo aos poucos, faça isso dentro da página.

R524 · Notas no cabeçalho, rodapé ou camada livre

Seção intitulada “R524 · Notas no cabeçalho, rodapé ou camada livre”

Aviso. Mensagem: notas (::: notes) dentro de @footer são ignoradas.

@footer
Confidencial
::: notes
Lembrar de citar o contrato.
:::
@end
# Abertura
---
# Agenda

Como corrigir: escreva ::: notes dentro da página a que a nota se refere.

Seção intitulada “R525 · Texto na linha do @header, @footer ou @overlay”

Aviso. Mensagem: o texto Confidencial depois de @footer será ignorado.

A linha do @header, @footer ou @overlay só aceita atributos entre chaves. O conteúdo vai nas linhas seguintes, até @end.

@footer Confidencial
@end
# Abertura

Como corrigir: passe o texto para a linha de baixo. Para desligar o rodapé que vem do tema base, use @footer none.

R530 · Definição que não cabe no tipo de item de biblioteca

Seção intitulada “R530 · Definição que não cabe no tipo de item de biblioteca”

Erro. Mensagem: @theme não pode ser usado em uma paleta.

Programas que guardam temas, componentes, estilos e paletas reutilizáveis pedem ao compilador para validar cada item de biblioteca. Cada tipo de item aceita só algumas definições: paletas levam @color e @font; estilos levam também @style; componentes levam também @component; temas aceitam qualquer definição de tema.

@theme paper
@color marca #349ef4

Como corrigir: apague a linha apontada ou guarde o item com outro tipo, por exemplo tema em vez de paleta.

R531 · Item de biblioteca sem definição principal

Seção intitulada “R531 · Item de biblioteca sem definição principal”

Erro. Mensagem: escolha qual componente é o principal.

Componentes e estilos de biblioteca precisam dizer qual definição é a principal, aquela que quem usar o item vai chamar.

Como corrigir: informe qual definição do item é a principal.

Erro. Mensagem: componente não encontrado(a): cartao.

A definição principal escolhida não existe no texto do item, ou foi renomeada.

Como corrigir: escolha outra definição principal ou corrija o nome no texto.

Erro. Mensagem: tipo de item desconhecido: slide.

O item foi validado com um tipo que o compilador não conhece. Os tipos válidos são tema, componente, estilo e paleta (modelos são validados como tema).

Como corrigir: valide o item com um dos tipos da lista.

Erro. Mensagem: modo desconhecido: jogo.

@mode jogo
# Abertura

Como corrigir: use @mode default (o padrão) ou @mode game.

Erro. Mensagem: variável desconhecida: $totl.

Uma expressão, if, for ou click usa um nome que não foi declarado com @let, @data ou @state, ou um campo que o registro não tem. Fora de expressões, um $nome não declarado continua como texto.

@let total = 10
::: if $totl > 5
Muitos itens
:::

Como corrigir: corrija o nome (a dica sugere o mais próximo) ou declare a variável.

Erro. Mensagem: esperava número, mas o valor é texto.

O valor não tem o tipo que a operação espera: uma conta com texto, uma condição que não é verdadeiro/falso, um campo em algo que não é registro ou um @state recebendo outro tipo.

@let nome = Ana
# $($nome * 2)

Como corrigir: use valores do tipo certo. Para condições, compare: $total > 0.

Erro. Mensagem: a expressão terminou antes do esperado.

A expressão está mal escrita: falta um valor, um parêntese ou aspas, ou há um caractere que não faz parte da linguagem.

# Total: $(10 +)

Como corrigir: complete a expressão. Para comparar, use == (não =).

Erro. Mensagem: este valor depende do estado do documento e não pode ser usado aqui.

Valores de @state (e $step) só podem ser usados em condições (if), variantes (.estilo=condição), texto e click. Atributos visuais, @let e listas de for precisam de valores fixos.

@state modo = claro
# Olá {color=$modo}

Como corrigir: use uma variante: @style escuro {color=ink} e {.escuro="$modo == escuro"}.

Erro. Mensagem: $total não pode ser alterado.

Um click tenta mudar um @let, um @data, um parâmetro de componente ou uma variável do for. Só @state muda enquanto o documento é mostrado.

@let total = 0
[Somar]{click="$total = $total + 1"}

Como corrigir: declare a variável com @state total = 0.

Erro. Mensagem: for precisa de uma lista, mas o valor é número.

O for não recebeu uma lista, está mal escrito, depende do estado ou passaria do limite de 500 repetições no documento.

@let total = 3
::: for item in $total
$item
:::

Como corrigir: use uma lista (@data, [a, b]) ou um intervalo (1..3).

Erro. Mensagem: else precisa vir logo depois de um bloco if.

::: else e ::: else if precisam vir imediatamente depois de um ::: if (ou de outro else if) no mesmo bloco. Outro bloco no meio, ou um segundo else, quebra a sequência.

# Título
::: else
Alternativa
:::

Como corrigir: coloque o ::: else logo depois do ::: if … ::: correspondente.

Aviso. Mensagem: $plano nunca recebe o valor prro.

Uma condição compara um @state de texto com um valor que não é o inicial nem é atribuído por nenhum click. Geralmente é um erro de digitação.

@state plano = pro
::: if $plano == prro
Plano Pro
:::

Como corrigir: corrija o valor (a dica mostra os valores usados).

Erro. Mensagem: @let espera um nome, = e um valor.

Um @let ou @state sem = ou com nome inválido, um @data sem nome ou sem tabela, ou um campo de @data com nome inválido.

@let destaque coral

Como corrigir: escreva @let destaque = coral. Nomes usam letras minúsculas, números, hífens e sublinhados.

Erro. Mensagem: $total já foi definido.

@let, @data e @state compartilham os mesmos nomes, que precisam ser únicos. step é reservado para a etapa atual.

@let total = 1
@state total = 2

Como corrigir: dê nomes diferentes às variáveis.

Erro. Mensagem: ação inválida: pular.

O valor de click não é uma ação conhecida.

[Próximo]{click="pular"}

Como corrigir: use $x = valor, toggle $x, go #id, go back, go next ou go prev, separadas por ;.

Erro. Mensagem: on-enter só pode mudar o estado; go, back, next e prev não são permitidos.

on-enter roda ao entrar na página. Mudar de página ali levaria a outra página sem ninguém pedir, e poderia criar um ciclo.

--- {on-enter="go #fim"}
# Introdução

Como corrigir: deixe em on-enter só $x = valor e toggle $x. Para escolher a página seguinte, use next=#id no separador.

Erro. Mensagem: random só pode ser usado em ações (click e on-enter).

random e pick sorteiam um valor novo a cada chamada. No texto, numa condição ou num @let, o resultado mudaria a cada vez que a tela é desenhada.

@state dado = 0
# Sua vez
Você tirou $(random(1, 6))

Como corrigir: sorteie numa ação e guarde o resultado num @state: [Rolar]{click="$dado = random(1, 6)"} e Você tirou $dado.

Erro. Mensagem: on-timeout precisa de timeout na mesma página.

# Abertura
--- {on-timeout="go next"}
# Introdução

Como corrigir: diga quantos segundos esperar no mesmo separador: --- {timeout=30 on-timeout="go next"}.

Erro. Mensagem: esta página não tem o som prta.

play e stop só alcançam os sons declarados com :: sound na mesma página.

# A porta
:: sound https://exemplo.com/porta.mp3 {name=porta}
[Abrir]{click="play prta"}

Como corrigir: corrija o nome ou declare o som na página com {name=…}.

Erro. Mensagem: já existe outro som porta nesta página.

Como corrigir: dê um nome diferente a cada :: sound da página.

Erro. Mensagem: @persist só guarda variáveis de @state, e $fixo não é uma.

@let fixo = 1
@persist fixo
# Abertura

Como corrigir: liste só variáveis declaradas com @state no início do documento.

Erro. Mensagem: score em @scorm precisa ser uma variável numérica de @state, e $nome não é.

@state nome = "Ana"
@scorm score=$nome
# Abertura

Também aparece com parâmetro desconhecido (só valem score, complete, max e pass), com max ou pass que não são números positivos, com pass maior que max e quando faltam score e complete.

Como corrigir: use um @state numérico como nota, como @state pontos = 0 e @scorm score=$pontos complete=#fim.

Erro. Mensagem: $rodada vem de fora do documento (@extern) e não muda por ações.

@extern rodada = 1
# Placar
[Próxima]{click="$rodada = $rodada + 1"}

Também aparece em :: input {bind=$rodada}, em @persist rodada e em @scorm score=$rodada.

Como corrigir: deixe quem mostra o documento definir o valor, ou declare com @state se o próprio documento deve mudá-lo.

Erro. Mensagem: ações não podem usar $coisa, que só existe enquanto a repetição é desenhada.

@state mochila = [mapa, chave]
@state escolhida = ""
# Mochila
::: for coisa in $mochila
[$coisa]{click="$escolhida = $coisa"}
:::

Aparece quando um ::: for percorre uma lista que muda enquanto o documento é mostrado (@state ou @extern) e uma ação usa o item ou a posição.

Como corrigir: use o item no texto, em if ou em variantes; para ações, use valores do @state.

Erro em click="go #id" e next=#id; aviso em links [texto](#id). Mensagem: não existe página com o id #fim.

[Ir para o fim]{click="go #fim"}

Como corrigir: dê o id à página de destino (--- {#fim}) ou corrija o nome.

Aviso. Mensagem: a página oculta #extra não é alcançada por nenhum link ou go.

Uma página com hidden não aparece no fluxo normal; sem um link, go ou next apontando para ela, ninguém consegue vê-la.

# Início
--- {#extra hidden}
Detalhes

Como corrigir: crie um link para a página ([Detalhes](#extra)) ou remova o hidden.

Só aparecem na linha de comando, com ribalta check --check-assets, que acessa a internet para conferir as imagens e os sons.

Aviso. Mensagem: a imagem https://exemplo.com/foto.jpg respondeu 404.

# Equipe
![Foto da equipe](https://exemplo.com/foto.jpg)

Também aparece quando o endereço não responde (domínio errado, sem conexão) e quando ele é uma página, não o arquivo: por exemplo, o link de uma foto no Unsplash em vez do endereço da imagem.

Como corrigir: abra o endereço no navegador. Se for uma página, clique com o botão direito na imagem e copie o endereço dela. Se o arquivo não existir mais ou exigir login, guarde a imagem no programa em que você escreve (asset:).