Os webhooks do Discord permitem enviar mensagens automatizadas para canais a partir de aplicativos ou scripts externos. Mas mensagens de texto simples geralmente parecem bagunçadas e sem ênfase. A formatação Markdown resolve isso, permitindo adicionar negrito, itálico, blocos de código, listas e muito mais diretamente no payload do webhook. Este artigo explica a sintaxe Markdown suportada para mensagens de webhook e mostra como aplicá-la no payload JSON.
Principais conclusões: Sintaxe Markdown para mensagens de webhook do Discord
- Dois asteriscos para negrito: Envolva o texto em
textopara deixá-lo em negrito. - Um asterisco para itálico: Use
textopara itálico. - Crases para código inline: Coloque o código entre crases simples
`código`. - Três crases para blocos de código: Use três crases com nome opcional da linguagem para código multilinha.
Markdown suportado em mensagens de webhook do Discord
As mensagens de webhook do Discord suportam a mesma formatação Markdown que as mensagens de chat comuns. O Markdown é interpretado no campo content do payload JSON. Você também pode aplicar Markdown dentro de campos de mensagens incorporadas. Os seguintes elementos Markdown funcionam no conteúdo do webhook:
Formatação de texto
Negrito — Use dois asteriscos: texto em negrito renderiza como texto em negrito.
Itálico — Use um asterisco: texto em itálico renderiza como texto em itálico.
Negrito e itálico — Use três asteriscos: negrito e itálico renderiza como negrito e itálico.
Sublinhado — Use dois underscores: __texto sublinhado__ renderiza como texto sublinhado.
Tachado — Use dois tils: ~~texto tachado~~ renderiza como texto tachado.
Spoiler — Use duas barras verticais: ||texto spoiler|| oculta o texto atrás de uma sobreposição clicável.
Formatação de código
Código inline — Envolva em crases simples: `trecho de código` renderiza como trecho de código.
Bloco de código — Envolva em três crases. Opcionalmente, adicione um nome de linguagem após as crases de abertura para realce de sintaxe. Exemplo:
```python
print("Olá")
```
Listas
Lista não ordenada — Inicie cada linha com um hífen ou asterisco seguido de espaço.
Lista ordenada — Inicie cada linha com um número e um ponto seguido de espaço. Exemplo:
1. Primeiro item
2. Segundo item
3. Terceiro item
Citações em bloco
Inicie uma linha com o sinal de maior > seguido de espaço. Exemplo:
> Esta é uma citação em bloco
Títulos
Use símbolos de hash no início de uma linha. O Discord suporta até três níveis: # Título 1, ## Título 2, ### Título 3. Observe que títulos em mensagens de webhook geralmente aparecem menores do que no chat comum.
Passos para enviar uma mensagem de webhook formatada com Markdown
Para formatar Markdown em uma mensagem de webhook do Discord, você envia uma requisição POST para a URL do webhook com um payload JSON. O Markdown vai dentro da string content ou dentro do campo description de um embed. Abaixo estão os passos usando um script Python simples como exemplo. Você pode adaptar esses passos para qualquer linguagem de programação ou ferramenta que envie requisições HTTP POST.
- Obtenha sua URL de webhook
Abra o Discord e vá em Configurações do Servidor > Integrações > Webhooks. Clique no webhook que deseja usar ou crie um novo. Copie a URL do webhook. Ela se parece com:https://discord.com/api/webhooks/123456/abcdef. - Crie o payload JSON com Markdown
Escreva um objeto JSON com uma chavecontent. O valor é uma string que inclui a sintaxe Markdown. Por exemplo:{ "content": "Olá do webhook!" } - Envie a requisição POST
Use uma ferramenta como a bibliotecarequestsdo Python, curl ou Postman. O corpo da requisição deve ser JSON e o cabeçalho Content-Type deve serapplication/json. Exemplo de código Python:import requests
url = "SUA_URL_DE_WEBHOOK"
data = {"content": "Negrito e itálico"}
requests.post(url, json=data) - Verifique a mensagem no Discord
Confira o canal onde o webhook posta. O Markdown deve renderizar como texto formatado. Se aparecer texto simples, a URL do webhook pode estar incorreta ou o formato do payload está errado.
Erros comuns e limitações
Markdown aparece como texto simples
Isso acontece quando o campo content contém caracteres escapados ou quando a URL do webhook aponta para um canal ou servidor diferente. Certifique-se de que a sintaxe Markdown use caracteres brutos, não entidades HTML. Por exemplo, use negrito e não **negrito**. Verifique também se a URL do webhook está correta e se o bot tem permissão para enviar mensagens naquele canal.
Markdown na descrição do embed não funciona
O Markdown funciona no campo description de um objeto embed. No entanto, alguns elementos Markdown como títulos e citações em bloco podem não renderizar como esperado dentro de embeds. Para resultados confiáveis, use negrito, itálico, sublinhado, tachado e código inline nas descrições dos embeds.
Quebras de linha não aparecem
Em uma string JSON, use \n para quebras de linha. Não use quebras de linha reais dentro da string JSON. Exemplo: "content": "Linha um\nLinha dois". Para conteúdo multilinha, considere usar blocos de código com três crases.
Caracteres especiais quebram o Markdown
Caracteres como asteriscos, underscores e crases dentro de blocos de código ou código inline são tratados como caracteres literais e não como formatação. Se precisar exibir um asterisco sem formatação, envolva-o em crases: ``.
Tabela de referência da sintaxe Markdown
| Formatação | Sintaxe | Exemplo de saída |
|---|---|---|
| Negrito | texto |
texto |
| Itálico | texto |
texto |
| Negrito + Itálico | texto |
texto |
| Sublinhado | __texto__ |
texto |
| Tachado | ~~texto~~ |
|
| Spoiler | ||texto|| |
oculto |
| Código inline | `código` |
código |
| Bloco de código | ```linguagem\ncódigo\n``` |
bloco formatado |
| Lista ordenada | 1. item |
lista numerada |
| Lista não ordenada | - item |
lista com marcadores |
| Citação em bloco | > texto |
citação indentada |
| Título 1 | # texto |
título grande |
| Título 2 | ## texto |
título médio |
| Título 3 | ### texto |
título pequeno |
Agora você pode formatar mensagens de webhook do Discord com negrito, itálico, blocos de código, listas e outros elementos Markdown. Comece testando texto em negrito no campo content e depois expanda para embeds e blocos de código. Para uso avançado, combine Markdown com os objetos embed do Discord para criar notificações ricas e estruturadas. Lembre-se de escapar caracteres especiais com crases quando precisar de exibição literal.