Linguagem de formato Markdown: guia completo em português

Última actualización: abril 25, 2026
  • Markdown é uma linguagem de marcação leve focada em legibilidade e fácil conversão para HTML.
  • A linguagem evoluiu em diversos dialetos, com esforços de padronização como CommonMark e GFM.
  • Recursos como listas, links, imagens, tabelas e blocos de código tornam o Markdown ideal para documentação técnica.
  • Empresas e plataformas adotam extensões próprias, mantendo a base da sintaxe e ajustando detalhes de compatibilidade.

Sintaxe Markdown em exemplo de formato

Markdown é uma linguagem de marcação leve pensada para que qualquer pessoa consiga escrever textos bem formatados usando apenas um editor simples, sem ter que lidar diretamente com o HTML. A ideia é que o texto continue fácil de ler em formato plano, mas possa ser convertido de forma automática em HTML válido e estruturado.

Em vez de tags cheias de sinais estranhos, o Markdown se apoia em símbolos que você já usa no dia a dia, como cerquilhas, asteriscos, travessões e colchetes. Com poucos caracteres, você cria títulos, listas, links, imagens, citações e trechos de código, o que explica por que a sintaxe é tão comum em plataformas como GitHub, Slack, foruns e documentações técnicas.

Origem do Markdown e objetivo da linguagem

O Markdown foi criado em 2004 por John Gruber, com uma colaboração importante de Aaron Swartz na definição da sintaxe. O propósito principal era permitir que as pessoas escrevessem textos em formato simples, legíveis e fáceis de editar, que pudessem ser convertidos automaticamente em XHTML ou HTML bem formados.

Enquanto linguagens de marcação tradicionais como HTML ou RTF exigem o uso de muitas tags explícitas (por exemplo, <b>, <i>, <a>), o que polui visualmente o texto, o Markdown tenta manter o conteúdo o mais próximo possível de um texto comum de e‑mail ou de um arquivo .txt. As marcações de formatação são discretas, inspiradas em convenções que já existiam em textos simples, o que torna a leitura confortável mesmo antes da conversão para HTML.

A implementação original de Gruber foi um script em Perl chamado Markdown.pl, responsável por ler o texto marcado em Markdown e gerar XHTML ou HTML estruturado. Esse script também cuidava de substituir automaticamente caracteres especiais, como os sinais de menor (<), maior (>) e o “e” comercial (&), pelas entidades HTML corretas, evitando problemas de renderização no navegador.

Desde então, a linguagem foi portada para vários ambientes: há um módulo Perl disponível no CPAN (Text::Markdown), bibliotecas em diversas linguagens e integrações com sistemas de gestão de conteúdo (CMS). O código é distribuído sob uma licença no estilo BSD, o que facilitou que muitas ferramentas e plataformas adotassem o formato como padrão para escrever documentação, posts e arquivos README.

Grandes sites e comunidades técnicas abraçaram o Markdown, entre eles GitHub, Bitbucket, Reddit, Diaspora, Stack Exchange, OpenStreetMap, SourceForge e Slack, usando dialetos levemente diferentes para acomodar necessidades específicas. Em geral, a meta é sempre a mesma: simplificar a comunicação e a discussão entre usuários sem perder a estrutura de um bom HTML por trás.

Exemplo de uso da linguagem de formatação Markdown

Fragmentação, dialetos e o esforço de padronização

Apesar de a especificação original de John Gruber ser a referência histórica, ela não cobre todos os casos de uso modernos, e muita gente considera esse documento inicial desatualizado. Na prática, cada desenvolvedor ou comunidade acabou criando sua própria variação, adicionando funcionalidades ou ajustando detalhes de sintaxe que consideravam ausentes ou problemáticos.

Essa liberdade gerou um cenário de fragmentação: temos várias “versões” de Markdown, que se comportam de forma diferente em pontos específicos, como o tratamento de tabelas, listas aninhadas, blocos de código ou notas de rodapé. Em alguns ambientes, um determinado recurso funciona perfeitamente; em outros, nem é reconhecido, o que pode causar muita confusão para quem escreve documentação multiplataforma.

Para tentar organizar essa bagunça, surgiu um esforço de padronização em 2012, liderado por um grupo que incluía Jeff Atwood e John MacFarlane. A ideia era criar uma especificação moderna, clara e bem testada, documentando de forma rigorosa como o Markdown deveria se comportar, além de manter uma suíte de testes e uma implementação de referência aberta a contribuições.

Esse trabalho acabou dando origem ao CommonMark, um novo dialeto com especificação formal detalhada, mantida em CommonMark.org. A comunidade passou a contar com um conjunto de testes abrangente e um comportamento previsível, reduzindo ambiguidades que existiam na sintaxe original. Embora a padronização seja bem vista por muitos desenvolvedores, o próprio Gruber se opôs ao uso do nome “Markdown” nesse projeto, o que reforçou a distinção entre o original e o CommonMark.

O GitHub, que é uma das plataformas que mais popularizaram o uso de Markdown, adotou o CommonMark como base e, em 2017, publicou a especificação formal do GitHub Flavored Markdown (GFM). O GFM é um superconjunto estrito do CommonMark: segue a especificação exatamente, mas adiciona extensões, como suporte a tabelas, texto tachado, autolinks (links reconhecidos automaticamente) e listas de tarefas com checkboxes.

Relacionado:  Antivírus contra malware e ransomware: guia completo de proteção

Além da especificação, o GitHub atualizou o parser utilizado na própria plataforma, o que obrigou alguns documentos antigos a serem ajustados. Um exemplo clássico é o uso do símbolo de cerquilha para títulos: agora é obrigatório ter um espaço entre o # e o texto do título, caso contrário o cabeçalho não é reconhecido corretamente. Mesmo assim, boa parte da sintaxe tradicional continua funcionando, o que mantém certa compatibilidade com o Markdown “clássico”.

Markdown Extra e outras extensões populares

Entre as variações mais conhecidas da linguagem está o Markdown Extra, originalmente implementado em PHP e depois portado para Python e Ruby. Ele foi criado para suprir funcionalidades avançadas que a sintaxe básica não oferecia, mantendo a filosofia de ser uma linguagem leve, porém mais poderosa para aplicações como blogs e CMS.

O Markdown Extra é compatível com sistemas de gerenciamento de conteúdo como Drupal e TYPO3, e chegou a ser adotado em extensões de plataformas como MediaWiki, por meio de módulos como MarkdownExtraParser (que, porém, acabou ficando sem manutenção). A grande diferença é o conjunto de recursos adicionais oferecidos em cima da base do Markdown tradicional.

Entre os destaques, o Markdown Extra adiciona capacidades como uso de atributos id e class em elementos, permitindo que você estilize trechos específicos via CSS; “blocos de código protegidos” que podem se estender por várias linhas; criação de tabelas de forma mais prática; listas de definição; notas de rodapé; abreviações e uma melhor convivência com blocos HTML dentro do texto.

Essas extensões ajudam bastante em contextos de documentação técnica, em que você precisa citar referências, criar conteúdos mais ricos ou misturar HTML e Markdown sem se preocupar se a sintaxe vai quebrar. Ainda assim, a lista de recursos do Markdown Extra não é totalmente fechada; a recomendação é sempre conferir a documentação oficial para saber o que está ou não disponível em cada implementação.

Um ponto fundamental, presente tanto no Markdown “puro” quanto em variações, é o mecanismo de escape com barra invertida. Quando você não quer que um caractere seja interpretado como comando de formatação, basta colocar uma barra invertida antes dele. Por exemplo, \\ indica uma barra literal, \* exibe um asterisco, \_ mostra um sublinhado, e assim por diante.

Sintaxe básica: títulos, parágrafos e ênfase

A base da escrita em Markdown gira em torno de títulos, parágrafos e ênfase. Um parágrafo comum não exige nenhuma marca especial: basta digitar o texto e separar blocos diferentes com uma linha em branco. Em muitos processadores, dois espaços no final de uma linha também podem forçar uma quebra de linha dentro do mesmo parágrafo.

Os títulos são criados com o símbolo de cerquilha colocado antes do texto, variando de um a seis sinais para indicar níveis de cabeçalho, em paralelo aos elementos HTML <h1> até <h6>. Assim, uma linha iniciada com uma cerquilha representa um título de nível 1, duas cerquilhas formam um título de nível 2, e assim sucessivamente até seis cerquilhas para o título de nível 6.

Para dar ênfase ao conteúdo, entram em cena os asteriscos e os sublinhados. Um asterisco ou um traço-baixo em volta de uma palavra ou frase normalmente indica itálico, enquanto dois asteriscos ou dois traços-baixos produzem negrito. É comum ver exemplos como *texto* ou _texto_ para itálico, e texto ou __texto__ para negrito. Essas combinações são reconhecidas pela maioria dos processadores de Markdown.

Essa combinação permite escrever frases naturais com trechos destacados, como em um e‑mail: você pode enfatizar termos importantes sem interromper o fluxo da leitura com tags HTML visíveis. Ainda assim, como já comentado, se você quiser mostrar um asterisco literal, basta escapar com a barra invertida para evitar que ele seja interpretado como marca de ênfase.

Outro recurso essencial é a citação em bloco, inspirada no <blockquote> do HTML. Para transformar um parágrafo em citação, você adiciona o símbolo > (maior que) no início da linha. Várias linhas seguidas começando com esse caractere formam um único bloco de citação, dentro do qual ainda é possível usar negrito, itálico e links normalmente, gerando comentários, avisos ou destaques de trechos de texto.

Relacionado:  Como ativar a virtualização no BIOS? Guia passo a passo

Listas, links, imagens e tabelas

As listas são um dos elementos mais usados em Markdown, e existem tanto na forma ordenada (numerada) quanto não ordenada (com marcadores). Para uma lista não ordenada, você pode iniciar cada item com um asterisco, um hífen ou um sinal de mais, sempre seguido de um espaço, por exemplo: * Item, – Item ou + Item, dependendo da convenção da ferramenta que estiver usando.

Já as listas ordenadas são criadas com números seguidos de ponto, como 1., 2., 3., também acompanhados de um espaço antes do texto do item. Em muitas implementações, você nem precisa se preocupar com a sequência numérica exata: basta numerar tudo como 1. e o processador ajusta automaticamente. É importante, porém, não misturar estilos de numeração dentro da mesma lista e respeitar uma linha em branco antes e depois da estrutura.

Listas aninhadas são possíveis recuando os itens internos, muitas vezes com um Tab ou com quatro espaços. Assim, você consegue montar sublistas dentro de listas principais, o que é excelente para descrever passos, opções e hierarquias de informações. Em alguns sistemas, certos tipos de conteúdo (como blocos de artigos) podem ter restrições para listas aninhadas profundas, então vale observar o comportamento da sua plataforma.

Para criar links, a sintaxe mais usada é o formato de texto âncora: entre colchetes, você coloca o texto clicável e, entre parênteses, a URL de destino. Algo como [texto do link](https://exemplo.com/) gera um link HTML <a href> equivalente. Também é comum o uso de links diretos, cercando o endereço com < e >, como <https://exemplo.com/>, que se tornam clicáveis sem texto âncora separado.

As imagens seguem uma lógica semelhante aos links, acrescentando apenas um ponto de exclamação no início. A estrutura fica ![texto alternativo](URL), onde o texto alternativo serve como descrição e é exibido caso a imagem não carregue. Também é possível transformar a imagem em um link clicável, envolvendo a sintaxe da imagem dentro da sintaxe de link.

A sintaxe de tabelas não faz parte do núcleo original de Markdown, mas está presente em dialetos como GitHub Flavored Markdown e Markdown Extra, além de ser muito usada em documentação moderna. A ideia básica é definir cabeçalhos de coluna na primeira linha, separados por barras verticais, e em seguida, na segunda linha, usar hifens (também separados por barras verticais) para delimitar o cabeçalho. As linhas seguintes representam os dados.

Para controlar o alinhamento das colunas, entram em cena os dois‑pontos: dois‑pontos à esquerda indicam alinhamento à esquerda, à direita significam alinhamento à direita, e dois‑pontos de ambos os lados definem alinhamento centralizado. Isso permite construir tabelas relativamente sofisticadas apenas com caracteres de texto simples, embora células com múltiplos parágrafos ou listas possam ser complicadas de manter legíveis.

Blocos de código, destaque de sintaxe e escapes

O suporte a código é um dos grandes trunfos do Markdown, sobretudo em comunidades de programadores. Há dois tipos principais: o código em linha e os blocos de código em múltiplas linhas. O código em linha é criado envolvendo um trecho com acentos graves (backticks), por exemplo `meu_codigo`, o que no HTML será convertido em um elemento <code>.

Para trechos maiores, entram os blocos de código “cercados”, que usam três acentos graves antes e depois do bloco. Muitas ferramentas, como GitHub e editores modernos, permitem indicar a linguagem de programação logo após os três acentos de abertura, por exemplo “`javascript ou “`html, o que ativa o realce de sintaxe para aquela linguagem específica.

Algumas variações também aceitam o uso de três tils (~) em vez de acentos graves, como ~~~php, para abrir e fechar o bloco de código. Em qualquer caso, o conteúdo entre as marcas é tratado como código literal, sem que o Markdown tente interpretar comandos internos, o que evita conflitos com símbolos especiais usados por linguagens de programação.

Em implementações clássicas, há ainda o chamado “bloco de código por indentação”, em que quatro espaços no início de cada linha já são suficientes para indicar que aquilo é um bloco de código. Vários processadores continuam reconhecendo esse padrão, embora o uso de blocos cercados com “` seja hoje bem mais comum e explícito, principalmente em plataformas como GitHub e ferramentas de documentação técnica.

O mecanismo de escapes com barra invertida é indispensável para lidar com caracteres reservados. Se você quer mostrar um asterisco, sublinhado, hífen, ponto de exclamação, parênteses, colchetes, chaves, barra invertida ou outros símbolos usados pela sintaxe, basta colocar uma barra invertida antes. Assim, \* não vira itálico e sim um asterisco literal; \_ não marca ênfase; \[ e \] deixam de ser interpretados como parte de links ou imagens.

Relacionado:  Guia completo de manuais de programas e plataformas digitais

Uso do Markdown em empresas e plataformas

Grandes empresas de software adotaram o Markdown como base da sua documentação técnica. Um exemplo é a Adobe, que escreve artigos de ajuda em uma linguagem de marcação leve compatível com GitHub Flavored Markdown, adicionando ainda extensões próprias para recursos como notas, dicas, avisos e vídeos incorporados, de acordo com as necessidades do sistema de ajuda.

Ao armazenar conteúdo em repositórios GitHub, a Adobe se beneficia da capacidade nativa do GFM para trabalhar com listas, cabeçalhos, links, blocos de código e tabelas. Ao mesmo tempo, adiciona componentes estendidos baseados em marcações específicas, frequentemente ancorados na sintaxe de citação (>) e em parâmetros extras colocados entre chaves depois de cabeçalhos ou blocos de código para ajustar propriedades e comportamentos.

Além dos componentes padrão, alguns sistemas criam extensões para blocos de notas (como alertas do tipo “importante”, “dica”, “atenção”), vídeos incorporados e módulos de “Mais artigos como este”, usados para sugerir conteúdos relacionados no fim das páginas. Esses blocos muitas vezes são ativados pelo uso de marcações especiais combinadas com o Markdown, mas são tratados por componentes específicos da plataforma.

Outro caso interessante é o uso de marcações como DNL (Do Not Localize), aplicadas a termos que não devem ser traduzidos automaticamente durante processos de localização. Em conteúdos de ajuda da Adobe, por exemplo, essas tags podem ser usadas para manter nomes de produtos, recursos ou trechos específicos em inglês, mesmo quando o restante do artigo é traduzido para outros idiomas.

Plataformas como o Vivaldi também integram Markdown no fluxo de uso, permitindo que usuários formatem notas pessoais e mensagens em fóruns com a mesma sintaxe padronizada. Isso garante uma experiência consistente entre diferentes ambientes: quem aprende Markdown em uma ferramenta pode reutilizar o conhecimento em várias outras sem reaprender tudo do zero.

Boas práticas, limitações e detalhes de compatibilidade

Embora a sintaxe pareça simples, existem algumas pegadinhas e recomendações importantes. Um ponto sensível são os apóstrofos e aspas “inteligentes” (curvas) que certos editores de texto inserem automaticamente. Em arquivos Markdown, esses caracteres especiais podem gerar símbolos estranhos na publicação final, pois nem sempre estão codificados em UTF‑8 de forma apropriada; em muitos casos, é melhor substituí-los por aspas simples e duplas comuns.

Outra atenção necessária recai sobre colchetes e o sinal de “e” comercial (&). Colchetes em texto comum podem ser confundidos com a sintaxe de links ou imagens, então é comum precisar codificá-los manualmente, especialmente quando formam algo que se parece com uma tag HTML, como <script name>, que muitas vezes precisa ser escrito explicitamente como &lt;script name&gt; para não ser interpretado.

Nos títulos, alguns processadores não permitem o uso direto do “&”, exigindo que o autor substitua o símbolo pela palavra “e” ou pela forma codificada &amp;. Isso evita conflitos com o parser HTML subjacente e garante que o conteúdo seja exibido corretamente em navegadores e ferramentas de conversão.

Quanto a quebras de linha e espaçamento, existe variação significativa entre implementações. Alguns ambientes exigem duas quebras de linha para criar um parágrafo novo; outros permitem usar o caractere &nbsp; diretamente em HTML para forçar quebras visuais. Em sistemas de base de conhecimento, muitas vezes o Shift+Enter é recomendado para criar uma nova linha dentro de um mesmo parágrafo, enquanto o Enter sozinho cria um parágrafo separado.

Por fim, convém lembrar que o suporte a certos recursos depende da plataforma. Por exemplo, algumas ferramentas não dão suporte a sublinhado como estilo de formatação, embora o caractere de sublinhado seja fundamental para ênfase. Em outros casos, elementos como regras horizontais (—), imagens clicáveis ou links para itens específicos (como tickets de suporte) podem ter limitações, dependendo do contexto em que o Markdown é processado.

A popularidade do Markdown se explica justamente pelo equilíbrio entre simplicidade e poder: é fácil de aprender, adapta‑se bem a editores de texto comuns, funciona em múltiplas linguagens e plataformas e, ao mesmo tempo, permite criar documentos muito próximos de um layout profissional, sobretudo quando combinado com dialetos como CommonMark, GFM e Markdown Extra.

 

Você pode estar interessado: