Pular para o conteúdo

Sintaxe

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

Esta página resume a linguagem inteira em tabelas curtas. Para explicações passo a passo, veja os guias; para os valores aceitos por cada atributo, veja Atributos.

Um documento tem duas partes, nesta ordem:

  1. Preâmbulo (opcional): linhas que começam com @, só no topo do arquivo.
  2. Slides: todo o resto. O primeiro conteúdo que não é definição começa o slide 1, e cada --- começa um slide novo.
@title Resultados do trimestre
@theme paper
# Primeiro slide
--- {.dark align=center}
# Segundo slide
DefiniçãoFormaEfeito
@title@title TextoTítulo da apresentação.
@author@author NomeAutor da apresentação.
@theme@theme paperTema embutido: paper (padrão), ink ou editorial.
@version@version 1Versão da linguagem. A única versão atual é 1.
@aspect@aspect 16:9Proporção: 16:9 (1920×1080, padrão) ou 4:3 (1440×1080).
@color@color marca #ff6b4aCria ou substitui um token de cor.
@font@font titulo "Bebas Neue" 400 700Cria ou substitui um token de fonte (família do Google Fonts e pesos de 100 a 900).
@style@style destaque {color=marca weight=bold}Cria um estilo reutilizável, aplicado com .destaque.
@component … @end@component nome {param param=padrão}Define um componente. O corpo vai até a linha @end.
@header … @end@header {atributos}Cabeçalho repetido em todos os slides, menos na capa. Veja Cabeçalho e rodapé.
@footer … @end@footer {atributos}Rodapé repetido em todos os slides, menos na capa. @footer none desliga o rodapé do tema do projeto.

Nomes de cores, fontes, estilos e componentes usam letras minúsculas, números e hífens, começando por uma letra. Linhas vazias e comentários podem aparecer entre as definições. Uma definição depois do primeiro slide é erro (F103).

FormaEfeito
---Começa um slide novo. Três ou mais hífens, sozinhos na linha.
--- {atributos}Começa um slide novo e aplica atributos ao slide inteiro.
--- {#id}Dá um id ao slide, usado em links internos como [voltar](#id).
  • Se o documento começa com --- logo depois do preâmbulo, esse separador configura o primeiro slide; não é criado um slide vazio.
  • Um --- dentro de um bloco de código não separa slides.
  • O título do slide (usado nas miniaturas e no modo apresentador) é o primeiro título # do slide; sem título, vale “Slide N”.
ConstruçãoSintaxeObservações
Títulos# Título … ###### TítuloSeis níveis. É preciso um espaço depois dos #.
ParágrafoLinhas de texto seguidasCada quebra de linha vira uma quebra de linha no slide. Uma linha vazia separa parágrafos.
Negrito**texto**Só com asteriscos.
Itálico*texto*Só com asteriscos; _texto_ não é itálico.
Riscado~~texto~~
Código em linha`código`O conteúdo não é interpretado.
Link[texto](https://…)Aceita https://, http://, mailto: e #id-do-slide.
Trecho com atributos[texto]{color=accent}As chaves vêm coladas no ].
Imagem em linha![descrição](https://…)Dentro de um parágrafo; aceita atributos colados: ![x](…){h=60}.
Imagem em bloco![descrição](https://…){fit=cover}Sozinha na linha. Aceita https://, http://, data:image/… e asset:<id>.
Lista- item, * item ou + itemItens aninhados com indentação. Linhas indentadas continuam o item.
Lista numerada1. item ou 1) itemO primeiro número define o início da contagem.
Citação> textoPode conter outros blocos, como listas e títulos.
Bloco de código```js … ```A linguagem é opcional; atributos podem vir no fim da linha de abertura.
Tabela| A | B | + | --- | --- |A segunda linha é obrigatória. :---, :---: e ---: alinham a coluna.

HTML não é interpretado: <b> aparece como texto no slide.

Atributos ficam entre chaves e configuram o bloco, o trecho ou o slide em que estão.

FormaExemploSignificado
.estilo{.card}Aplica um estilo embutido, um @style ou um token de cor ({.coral} equivale a {color=coral}).
#id--- {#resumo}Id do slide. Só tem efeito no separador.
chave=valor{size=5xl}Valor sem espaços.
chave="valor"{pad="sm lg"}Valor com espaços, entre aspas duplas ou simples. Use \" para uma aspa dentro do valor.
chave{italic}Liga um atributo booleano. Para desligar: italic=false.

Valores booleanos aceitam true, yes e sim para ligar e false, no e não para desligar.

OndePosiçãoExemplo
Títulos, parágrafos, itens de lista, linha de abertura de códigoNo fim da linha, com espaço antes# Título {size=5xl}
Blocos ::: e ::No fim da linha do bloco::: box {.card}
Separador de slideDepois de ------ {bg=ink color=white}
Trecho de textoColado no ][38%]{color=accent}
ImagemColado no )![Foto](https://…){fit=cover}

Num parágrafo de várias linhas, os atributos no fim de uma linha valem para o parágrafo inteiro e encerram o parágrafo. Estilos (.estilo) são aplicados primeiro, e os pares chave=valor escritos no próprio bloco prevalecem sobre eles.

FormaUso
::: nome {atributos} … :::Bloco contêiner. Um ::: sozinho na linha fecha o último bloco aberto.
:: nome valor {atributos}Bloco de uma linha só, sem conteúdo.

Blocos podem ser aninhados. A indentação é opcional e serve apenas para leitura.

::: columns {widths="2 1"}
::: stack
## Esquerda
Texto
:::
:: icon rocket {size=3xl color=accent}
:::
BlocoFormaFunção
columns:::Colunas lado a lado; cada filho é uma coluna.
stack:::Empilha os filhos na vertical.
row:::Coloca os filhos em linha, na horizontal.
grid:::Grade com número fixo de colunas.
box:::Caixa com fundo, borda e espaçamento.
steps:::Revela cada filho, ou cada item de lista, um por vez.
notes:::Notas do apresentador; não aparecem no slide.
chart:::Gráfico a partir de uma tabela.
slot:::Preenche um espaço nomeado de um componente.
icon::Ícone: :: icon rocket.
spacer::Espaço vazio: :: spacer lg.
divider::Linha divisória.

Detalhes de cada bloco em Blocos.

FormaSignificado
@component nome {a b=padrão}Define o componente nome com o parâmetro obrigatório a e o parâmetro b com valor padrão.
@endFecha a definição.
:: nome {a=valor}Usa o componente sem conteúdo.
::: nome {a=valor} … :::Usa o componente com conteúdo, que vai para $content.
::: slot lado … :::Dentro do uso de um componente, preenche o espaço nomeado $lado.
{step=N} no usoRevela o componente inteiro na etapa N.

Componentes recebem apenas parâmetros nomeados: .estilo, #id e texto solto depois do nome são erro. Componentes não podem usar a si mesmos, direta ou indiretamente.

MarcadorOndeEfeito
$paramNo corpo de um componente, em texto ou valor de atributoTrocado pelo valor do parâmetro: ## $titulo, {color=$cor}.
$contentSozinho numa linha do corpoRecebe o conteúdo passado entre ::: nome e :::.
$nomeSozinho numa linha do corpo, quando nome não é parâmetroEspaço nomeado, preenchido com ::: slot nome. Fica vazio se não for preenchido.
$page, $pages, $title, $author, $dateDentro de @header e @footerNúmero do slide, total de slides, título, autor e data de hoje. Outro nome é erro (F522).

Fora de um componente, de @header e de @footer, $palavra é texto comum. A única exceção é $content sozinho numa linha, que é erro (F401).

Uma linha que começa com // (com ou sem espaços antes) é ignorada, tanto no preâmbulo quanto nos slides.

// Revisar estes números antes da reunião
# Resultados
  • // no meio de uma linha é texto comum.
  • Dentro de blocos de código e de ::: notes, linhas com // são mantidas.
EscrevaPara obter
\*, \~, \`, \[, \], \!O caractere literal, sem formatação.
\{Uma chave literal; impede que {…} no fim da linha vire atributos.
`\`
\# no início da linhaUm # literal, sem virar título.
\" dentro de um valor entre aspasUma aspa dentro do valor.

A barra invertida escapa qualquer sinal de pontuação ASCII. Antes de outros caracteres, ela aparece normalmente.

// Preâmbulo: só definições, no topo do arquivo
@title Relatório trimestral
@theme paper
@color marca #2f6fdb
@style destaque {color=marca weight=bold}
@component metrica {valor rotulo cor=accent}
::: box {.card align=center}
$valor {size=4xl weight=black color=$cor}
$rotulo {.muted}
:::
@end
// Slide 1: o primeiro conteúdo começa o slide
Relatório trimestral {.kicker}
# Crescemos [38%]{.destaque} em receita {size=5xl}
Novos clientes, mais retenção
e uma equipe maior. {.lead}
// Slide 2: separador com id e atributos de slide
--- {#numeros align=center}
## Números que importam
::: grid {cols=3 gap=lg}
:: metrica {valor=+38% rotulo=Receita}
:: metrica {valor=12k rotulo=Clientes cor=green}
:: metrica {valor=4,8 rotulo=Avaliação cor=blue}
:::
::: notes
Destacar a avaliação dos clientes.
:::
// Slide 3: fundo em gradiente e revelação por etapas
--- {bg=ink..violet color=white}
## Próximos passos
::: steps
- Abrir duas novas regiões
- Lançar o plano anual
- Contratar o time de suporte
:::
Detalhes na [página de números](#numeros). {opacity=0.7}