Conversor de Markdown para HTML

Converta Markdown em HTML limpo com pré-visualização ao vivo — títulos, listas, links, blocos de código e mais, tudo no seu navegador.

1.105 visualizações

Como Funciona

Este conversor segue a especificação CommonMark — uma versão do Markdown definida com precisão que resolve as ambiguidades deixadas em aberto pela descrição original do Markdown de 2004 (como listas aninhadas interagem com parágrafos soltos, o que acontece quando um marcador está dentro de uma citação, e assim por diante). A análise ocorre em duas passagens distintas. A primeira é em nível de bloco: o texto bruto é dividido em unidades estruturais — parágrafos, títulos ATX (# até ######), blocos de código cercados, citações, listas ordenadas e não ordenadas, linhas horizontais — apenas observando a estrutura de linhas e o recuo, sem ainda olhar o que há dentro de cada bloco. A segunda passagem é em nível de linha (inline): dentro de cada bloco, o analisador procura marcadores de ênfase (*itálico*, **negrito**), trechos de código inline (`código`) e sintaxe de link ou imagem ([texto](url)), reescrevendo-os como as tags HTML correspondentes. Esse design em duas fases explica por que um asterisco dentro de um bloco de código cercado permanece intocado — blocos de código são totalmente resolvidos na primeira passagem, antes que as regras de ênfase inline cheguem ao seu conteúdo.

Exemplo: dado ## Notas de Lançamento seguido de uma linha em branco e - **v2.1**: correções, a análise em nível de bloco identifica primeiro um título e uma lista com um item; a análise inline então transforma **v2.1** em <strong>v2.1</strong> dentro do <li>. Tabelas seguem a extensão GFM (GitHub Flavored Markdown) construída sobre o CommonMark: uma linha de cabeçalho, uma linha separadora --- cujo posicionamento de dois-pontos (:--, :-:, --:) define o alinhamento da coluna, e quantas linhas de dados forem necessárias abaixo.

O que Saber

  • HTML bruto é escapado, não executado — colar uma tag de script ou um manipulador de evento inline é renderizado como texto visível em vez de ser executado, uma escolha de segurança deliberada para conteúdo colado ou não confiável.
  • Listas soltas e compactas mudam a saída — uma linha em branco entre itens de lista força o CommonMark a envolver cada item em seu próprio <p> (uma lista "solta"); sem linhas em branco os itens permanecem como conteúdo inline simples (uma lista "compacta"), o que muda o espaçamento vertical no HTML renderizado.
  • Aninhamento muito profundo tem um limite prático — quatro ou mais níveis de listas aninhadas ou definições de link por referência são CommonMark válido, mas são casos extremos mais bem atendidos por um analisador dedicado em tempo de build do que por uma pré-visualização ao vivo baseada no navegador.

Perguntas Frequentes

Tabelas são suportadas?

Tabelas com barra vertical são convertidas (| a | b | com uma linha separadora ---). Dois-pontos de alinhamento são reconhecidos para esquerda/centro/direita.

Por que minha tag HTML aparece como texto?

É proposital — o HTML bruto é escapado por segurança. Escreva o equivalente em Markdown, ou remova o escape manualmente se confiar na fonte.

O espaçamento de linhas segue as regras do Markdown?

Sim: uma linha em branco separa parágrafos, e uma linha terminando em espaço duplo gera um <br>. Quebras de linha simples dentro de um parágrafo são unidas, como especifica o CommonMark.

Por que a formatação dentro de uma lista aninhada ou bloco de código às vezes parece inesperada?

Porque a análise é feita em duas fases: a estrutura de blocos (listas, blocos de código, citações) é resolvida primeiro, apenas a partir do recuo e dos marcadores de linha, antes que qualquer formatação inline (negrito, itálico, links) seja aplicada dentro de cada bloco. O conteúdo dentro de um bloco de código cercado nunca é tocado pela passagem inline, então **isto** permanece texto literal ali em vez de ficar em negrito — esse é o comportamento esperado do CommonMark, não um bug.

Qual é a diferença entre o CommonMark básico e os recursos "GitHub Flavored"?

O CommonMark básico define títulos, ênfase, listas, citações, blocos de código e links com precisão. Tabelas, texto tachado (~~texto~~) e caixas de seleção de lista de tarefas ([ ] / [x]) são extensões GFM construídas sobre ele — amplamente suportadas por conversores como este, mas não garantidas em toda implementação estritamente CommonMark na qual você venha a colar a saída depois.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes