Como formatar Markdown em uma mensagem de webhook do Discord
🔍 WiseChecker

Como formatar Markdown em uma mensagem de webhook do Discord

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 texto para deixá-lo em negrito.
  • Um asterisco para itálico: Use texto para 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.

  1. 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.
  2. Crie o payload JSON com Markdown
    Escreva um objeto JSON com uma chave content. O valor é uma string que inclui a sintaxe Markdown. Por exemplo:
    { "content": "Olá do webhook!" }
  3. Envie a requisição POST
    Use uma ferramenta como a biblioteca requests do Python, curl ou Postman. O corpo da requisição deve ser JSON e o cabeçalho Content-Type deve ser application/json. Exemplo de código Python:
    import requests
    url = "SUA_URL_DE_WEBHOOK"
    data = {"content": "Negrito e itálico"}
    requests.post(url, json=data)
  4. 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~~ 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.