Uma linguagem de formatação em texto simples
Markdown é uma linguagem de marcação leve para adicionar formatação — títulos, texto em negrito e itálico, links, listas e código — a texto simples usando um pequeno conjunto de convenções baseadas em pontuação. Um único par de asteriscos deixa o texto em itálico, um par duplo deixa em negrito, e uma cerquilha no início da linha transforma essa linha em um título. Não há um formato de arquivo separado para aprender nem é preciso nenhum aplicativo específico para escrevê-lo: um documento Markdown é um arquivo .md ou .txt que você pode abrir em qualquer editor de texto.
A ideia central é que o Markdown sem formatação já deveria ser legível e fazer sentido como texto simples — diferente do HTML, em que um parágrafo envolto em tags <p><strong> é consideravelmente mais difícil de ler em sua forma bruta do que no resultado renderizado. O Markdown é então convertido, ou “renderizado”, em HTML (ou outro formato) para exibição.
Um breve histórico
O Markdown foi criado por John Gruber em 2004, com contribuições de Aaron Swartz sobre a sintaxe. O objetivo original de Gruber, declarado nas notas de lançamento da primeira versão do formato, era uma sintaxe “tão fácil de ler e de escrever quanto possível” — legível o suficiente para que um e-mail ou post de fórum em texto simples que a usasse ainda fizesse sentido completo para alguém que nunca tivesse visto Markdown antes.
Essa especificação original, porém, deixava vários casos extremos ambíguos — ferramentas diferentes divergiam sobre como lidar com listas aninhadas ou ênfase ao lado de pontuação, por exemplo. Em 2014, um grupo que incluía Jeff Atwood e John MacFarlane publicou o CommonMark, uma especificação estrita e sem ambiguidades, criada para que o Markdown se comportasse da mesma forma em todas as implementações. A maioria dos analisadores de Markdown modernos — incluindo o usado pelas próprias ferramentas deste site — é baseada no CommonMark.
Um exemplo rápido
Veja como essa ideia de “legível mesmo sem renderizar” funciona na prática. Este texto simples:
## Weekly update
Shipped the new **onboarding flow** and fixed the *login redirect* bug.
Next up:
- Finish the billing page
- Write release notesé renderizado como um título, um parágrafo com uma frase em negrito e outra em itálico, e uma lista de dois itens — mas mesmo antes de ser renderizado, você já consegue lê-lo e entender exatamente o que ele diz. Esse é todo o sentido do formato.
Onde o Markdown é usado hoje
O Markdown se tornou a sintaxe padrão de formatação em texto simples em uma enorme variedade de ferramentas:
- Plataformas para desenvolvedores — GitHub, GitLab e Bitbucket renderizam arquivos README, issues e descrições de pull requests escritos em Markdown.
- Ferramentas de chat e comunidade — Reddit, Discord e Slack aceitam uma sintaxe semelhante ao Markdown para negrito, itálico e formatação de código nas mensagens.
- Aplicativos de notas e documentação — Notion, Obsidian e muitos geradores de sites estáticos (entre eles Jekyll, Hugo e as camadas de conteúdo do Next.js) armazenam o conteúdo como arquivos Markdown.
- Redação técnica e blogs — ferramentas de documentação como GitBook e Read the Docs, e plataformas de blog como Ghost e dev.to, aceitam Markdown como formato principal de redação em vez de um editor de texto rico.
- Notebooks de ciência de dados — Jupyter e ferramentas de notebook semelhantes usam células Markdown para texto narrativo e explicações ao lado de células de código executável.
- Modelos de linguagem de grande porte — ferramentas de IA conversacional como ChatGPT e Claude formatam a maior parte de suas respostas em Markdown, já que isso permite sinalizar títulos, listas e blocos de código com muito pouco texto extra. Veja Markdown para LLMs para saber o motivo.
CommonMark versus GitHub Flavored Markdown
Na maioria das vezes, quando as pessoas dizem “Markdown” hoje em dia, estão se referindo a uma destas duas coisas relacionadas:
| Recurso | CommonMark | GitHub Flavored Markdown |
|---|---|---|
| Títulos, ênfase, listas, links | Sim | Sim |
| Tabelas | Não | Sim |
| Listas de tarefas | Não | Sim |
| Tachado | Não | Sim |
| Links automáticos (URLs soltas) | Não | Sim |
| Status da especificação | Especificação formal | Superconjunto do CommonMark |
Na prática, o GFM é o que a maioria das pessoas escreve no dia a dia — é a sintaxe que o GitHub renderiza, e a que as ferramentas deste site suportam. Veja o Cheat Sheet de Markdown para a referência completa, incluindo exatamente quais linhas são do CommonMark e quais são extensões do GFM.
Essa distinção importa na prática quando você move um documento entre ferramentas: cole uma tabela ou uma lista de tarefas em um analisador que implementa apenas o CommonMark estrito, e a marcação da tabela vira um parágrafo comum, com as caixas de seleção permanecendo como o texto literal [ ] em vez de serem renderizadas. Se um trecho de Markdown parece correto no GitHub mas quebra em outro lugar, geralmente é por causa de um recurso exclusivo do GFM.
Primeiros passos
Se você é novo no Markdown, três elementos de sintaxe cobrem a maior parte do que você precisa para começar: uma cerquilha para um título (# Heading), asteriscos para ênfase (**bold** ou *italic*), e um traço para um item de lista (- item). Todo o resto — tabelas, blocos de código, links — se baseia na mesma lógica de texto simples.
A forma mais rápida de pegar o jeito é escrever um documento curto e observar como ele é renderizado. Abra o editor de Markdown e digite algumas linhas — o painel de pré-visualização é atualizado conforme você escreve, então dá para ver exatamente o que cada elemento de sintaxe produz. Mantenha o cheat sheet aberto em outra aba enquanto se acostuma com a sintaxe.
Por que ele permaneceu relevante
Muitas linguagens de marcação existiram antes do Markdown, e muitas surgiram desde então. O que manteve o Markdown relevante por duas décadas é que ele nunca exigiu que ninguém instalasse nada ou aprendesse um conjunto pesado de ferramentas — é só texto, então funciona em um cliente de e-mail, um terminal, uma caixa de chat ou um editor de código sem nenhum suporte especial. Essa barreira de entrada baixa também é o motivo de ele se encaixar bem em conteúdo gerado por máquina: um script, a resposta de uma API ou um modelo de linguagem podem emitir Markdown como uma simples string, e ele continuará legível independentemente de quem o recebe saber renderizá-lo ou não. Duas décadas após o lançamento original de Gruber, essa combinação — legível por humanos, escrevível por máquinas e praticamente sem dependências — ainda é o motivo pelo qual o Markdown continua aparecendo em novas ferramentas em vez de ser substituído por elas.