Skip to content

Conversor de HTML para Markdown

Converta HTML em Markdown limpo no seu navegador — tabelas GFM, listas de tarefas e links. Escolha cabeçalhos ATX/Setext e links inline ou de referência. Ótimo para migrar conteúdo web ou alimentar LLMs. 100% privado, sem upload.

Sem rastreamento Roda no navegador Grátis
Tudo roda no seu navegador. Seu Markdown e HTML nunca saem do seu dispositivo.
HTML
Cabeçalhos
Links
Markdown
Verificado contra a saída CommonMark/GFM, o comportamento de conversão com perdas e as opções de estilo de cabeçalho/link — Go Tools Engineering Team · Jun 5, 2026

O que é a conversão de HTML para Markdown?

A conversão de HTML para Markdown pega um documento HTML renderizado — as tags, atributos e aninhamento que um navegador exibe — e o reescreve como Markdown, o formato leve de texto puro feito para escrita e controle de versão. Onde Markdown para HTML expande texto compacto em marcação para exibição, esta é a direção inversa e redutiva: você começa com HTML rico e verboso e o destila até o conjunto pequeno e legível de convenções que o Markdown oferece.

Por baixo dos panos, o conversor analisa o seu HTML numa árvore DOM — a mesma estrutura de nós que um navegador constrói — e então percorre essa árvore e emite o equivalente em Markdown para cada nó que reconhece. Um <h2> vira ## , um <strong> vira **texto**, um <ul> vira uma lista com marcadores, um vira um link, um <table> vira uma tabela com pipes GFM. Percorrer um DOM real, em vez de rodar expressões regulares sobre a string bruta, é o que permite lidar com listas aninhadas, formatação inline mista e tabelas corretamente, em vez de quebrar em casos extremos.

Você recorre a esta conversão quando está migrando para fora do HTML, não para dentro. Conteúdo preso num CMS, num editor WYSIWYG, numa página web antiga ou num campo de texto rico é difícil de comparar, difícil de revisar e difícil de mover. Convertê-lo para Markdown o liberta para um formato que vive feliz num repositório Git, num gerador de site estático ou num app de notas — e, cada vez mais, num formato que modelos de linguagem grandes leem com eficiência. O detalhe, que ferramentas honestas declaram claramente, é que a conversão é com perdas: o HTML pode expressar coisas que o Markdown não pode, então alguma estrutura e cada detalhe de estilização são deliberadamente descartados em troca de texto limpo e portável.

A operação inversa — Markdown de volta para HTML, para quando você estiver pronto para publicar ou pré-visualizar — é igualmente útil. Mude para a aba Markdown → HTML ou abra o conversor de Markdown para HTML dedicado.

HTML in:

  <h2>Pricing</h2>
  <p>Plans start at <strong>$9/mo</strong>. See the <a href="https://example.com/pricing">details</a>.</p>
  <table>
    <thead><tr><th>Plan</th><th>Price</th></tr></thead>
    <tbody><tr><td>Pro</td><td>$9</td></tr></tbody>
  </table>

Markdown out:

  ## Pricing

  Plans start at **$9/mo**. See the [details](https://example.com/pricing).

  | Plan | Price |
  | ---- | ----- |
  | Pro  | $9    |

  <!-- <div>, classes, and inline styles in the source are dropped — Markdown can't represent them. -->

Recursos Principais

Saída Ciente de GFM

Mira no GitHub Flavored Markdown, não apenas no CommonMark puro: tabelas HTML viram tabelas com pipes, <li>s com checkbox viram listas de tarefas (`- [x]`), e <del>/<s> viram ~~texto riscado~~. O Markdown cai direto num README, numa issue do GitHub ou num site de documentação e renderiza da mesma forma.

Cabeçalhos ATX ou Setext

Escolha cabeçalhos ATX prefixados com cerquilha (# H1) ou cabeçalhos Setext sublinhados (=== para H1, --- para H2). Setext cobre apenas os dois níveis superiores, então o conversor cai para ATX em H3 e mais profundos automaticamente — você nunca obtém um cabeçalho inválido.

Links Inline ou de Referência

Alterne entre links inline — [texto](url) ao lado da prosa — e links de referência, que reúnem cada URL numa lista numerada no pé do documento. O estilo de referência mantém legíveis os parágrafos com muitos links e permite reutilizar uma URL por rótulo.

Blocos de Código Cercados

Um bloco <pre><code> vira um bloco de código cercado com três crases, e uma classe language- no elemento <code> é levada adiante como a info string da cerca. O <code> inline vira spans de crases, então os trechos sobrevivem à viagem intactos.

Lida com Listas e Tabelas Aninhadas

Percorre o DOM real, então estruturas aninhadas de <ul>/<ol> convertem para listas Markdown corretamente indentadas e listas ordenadas renumeram a partir de 1. Tabelas simples achatam para tabelas com pipes; as genuinamente complexas caem para HTML bruto em vez de perder dados.

100% Privado, no Navegador

Cada conversão roda localmente com JavaScript — o seu HTML e o Markdown resultante nunca saem do seu dispositivo, nunca atingem um servidor e funcionam offline após o carregamento da página. Seguro para exportações de CMS internas, conteúdo de clientes e páginas não publicadas.

Exemplos

<table> web para uma tabela com pipes GFM

<table>
  <thead><tr><th>Região</th><th>Vendas</th></tr></thead>
  <tbody>
    <tr><td>EMEA</td><td>1.204</td></tr>
    <tr><td>APAC</td><td>980</td></tr>
  </tbody>
</table>
| Região | Vendas |
| ------ | ------ |
| EMEA   | 1.204  |
| APAC   | 980    |

Um <table> HTML copiado ou raspado colapsa numa tabela com pipes do GitHub Flavored Markdown. A linha <thead> vira o cabeçalho, a linha delimitadora de traços é gerada para você e cada <tr> vira uma linha delimitada por pipes — pronta para colocar num README ou numa página de documentação.

Links: estilo inline vs referência

<p>Leia o <a href="https://example.com/guide">guia de configuração</a> e a <a href="https://example.com/api">referência da API</a>.</p>
Inline:
Leia o [guia de configuração](https://example.com/guide) e a [referência da API](https://example.com/api).

Referência:
Leia o [guia de configuração][1] e a [referência da API][2].

[1]: https://example.com/guide
[2]: https://example.com/api

As mesmas âncoras renderizam de duas formas. Inline mantém a URL ao lado do texto; o estilo de referência move cada URL para uma lista numerada no rodapé, o que mantém parágrafos longos legíveis quando uma frase carrega vários links. Escolha o estilo com o rádio Links.

<ul>/<ol> aninhados para listas Markdown indentadas

<ul>
  <li>Build
    <ol>
      <li>Compilar</li>
      <li>Empacotar</li>
    </ol>
  </li>
  <li>Lançar</li>
</ul>
- Build
  1. Compilar
  2. Empacotar
- Lançar

O aninhamento é preservado pela indentação: o <ol> interno fica dois espaços abaixo do seu <li> pai e muda de um marcador `-` para a numeração `1.`. O Markdown renumera listas ordenadas automaticamente, então a fonte permanece limpa mesmo que o HTML tenha usado atributos value explícitos.

Um trecho de HTML de página web para Markdown limpo

<article>
  <h1>Changelog</h1>
  <p>Lançamos o <strong>modo escuro</strong> e corrigimos <code>parseDate()</code>.</p>
  <blockquote><p>Obrigado a todos que reportaram.</p></blockquote>
</article>
# Changelog

Lançamos o **modo escuro** e corrigimos `parseDate()`.

> Obrigado a todos que reportaram.

Cole uma fatia de uma página real — o invólucro <article> é descartado (o Markdown não tem elemento de contêiner), o <h1> vira `#`, <strong> vira `**`, o <code> inline vira crases e o <blockquote> vira uma linha `>`. Invólucros estruturais sem equivalente em Markdown simplesmente desaparecem.

Como Converter HTML para Markdown

  1. 1

    Cole o seu HTML

    Coloque uma página web copiada, uma exportação de CMS ou WYSIWYG, ou um trecho de HTML raspado. O DOM é analisado e serializado em Markdown no seu navegador conforme você cola — sem upload, sem limite de tamanho além da memória do seu navegador.

  2. 2

    Escolha os estilos de cabeçalho e link

    Escolha cabeçalhos ATX (#) ou Setext (===) e links inline ou de referência. O Markdown re-renderiza ao vivo, então você pode comparar estilos instantaneamente. A saída mira no GitHub Flavored Markdown — tabelas, listas de tarefas e texto riscado incluídos.

  3. 3

    Copie ou baixe

    Clique em Copiar para pegar o Markdown, ou Baixar para salvar um arquivo .md. Para ir na direção oposta, mude para a aba Markdown → HTML e cole o seu Markdown para obter HTML renderizado de volta.

Armadilhas Comuns

Esperar que a Estrutura de <div>/<span> Sobreviva

Contêineres genéricos não carregam equivalente em Markdown, então são desencapsulados — seu conteúdo permanece, mas a tag, e qualquer classe ou style nela, desaparece. Se o seu layout dependia de um <div> de invólucro ou de um <span> estilizado, essa estilização some no Markdown. Isso é esperado, não um bug; o Markdown simplesmente não tem como expressá-la.

✗ Incorreto
<div class="callout warning"><span style="color:red">Atenção!</span></div>
<!-- esperando que a caixa de destaque e a cor vermelha sobrevivam -->
✓ Correto
Atenção!
<!-- contêiner e estilos descartados; só o texto permanece no Markdown -->

Quebras de Linha <br> Perdidas Dentro de Parágrafos

Um <br> dentro de um parágrafo é uma quebra de linha suave, que o Markdown representa com dois espaços finais antes da nova linha (ou uma barra invertida). Colar HTML e esperar que quebras de linha visíveis sobrevivam pode surpreender quando linhas adjacentes refluem numa só. O conversor emite a forma de quebra forte, mas se você editar à mão depois, não remova os espaços finais.

✗ Incorreto
Linha um<br>Linha dois
<!-- se a forma de quebra for removida, elas se fundem numa linha -->
✓ Correto
Linha um  
Linha dois
<!-- dois espaços finais preservam o <br> como quebra forte -->

Tabelas Profundamente Aninhadas Degradando

Tabelas com pipes GFM não podem aninhar nem conter conteúdo de bloco. Um layout legado que coloca uma tabela (ou uma lista, ou múltiplos parágrafos) dentro de uma célula de tabela não pode virar uma tabela com pipes limpa — o conversor achata o que pode e deixa o resto como HTML bruto para que nada se perca. A correção é simplificar a origem, não a saída.

✗ Incorreto
<table><tr><td><table><tr><td>interno</td></tr></table></td></tr></table>
<!-- tabela aninhada não pode virar uma tabela com pipes plana -->
✓ Correto
<!-- Achate para uma tabela de nível único primeiro: -->
<table><tr><td>interno</td></tr></table>
→ | interno |
  | ------- |

Esperar que <script> ou Estilos Sobrevivam

<script>, <style> e elementos de nível de cabeçalho são código e apresentação, não conteúdo do documento, então são removidos inteiramente — não convertidos, não preservados como HTML bruto. Colar uma página inteira e esperar que comportamento ou CSS migrem para o Markdown vai decepcionar. O Markdown é um formato de conteúdo; se você precisa do código ou da estilização, mantenha o HTML.

✗ Incorreto
<style>.x{color:blue}</style>
<script>track()</script>
<p>Corpo</p>
<!-- esperando que o style e o script passem -->
✓ Correto
Corpo
<!-- só o conteúdo sobrevive; <script>/<style> são descartados -->

Casos de Uso Comuns

Migrar conteúdo web ou de CMS para Notion, Obsidian ou um site estático
Tire páginas de um CMS, de uma exportação do WordPress ou de um site HTML antigo e converta-as para Markdown que cai direto no Notion, Obsidian, Hugo ou Jekyll. Você troca marcação verbosa por texto portável que vive de forma limpa num repositório Git e gera diffs sensatos em revisão.
Exportar de um editor WYSIWYG
Editores de texto rico emitem HTML denso e cheio de atributos. Cole essa saída aqui para recuperar o Markdown limpo por baixo — cabeçalhos, listas, links e ênfase — para que o conteúdo possa migrar para um pipeline de documentação ou uma base de conhecimento baseada em Markdown em vez de ficar preso no editor.
Limpar HTML em Markdown para alimentar LLMs e pipelines RAG
O HTML bruto queima tokens com tags, scripts e estilização que um modelo nunca precisa. Converter uma página raspada para Markdown elimina esse ruído enquanto mantém a estrutura que um LLM lê bem, então você encaixa mais conteúdo real na janela de contexto e obtém embeddings mais limpos para recuperação.
Converter um texto rico colado em Markdown
Copie texto formatado de uma página web, um e-mail ou um documento e ele chega como HTML na área de transferência. Cole-o aqui para transformar esse texto rico em Markdown que você pode commitar, enviar num pull request ou escrever nas suas notas — formatação preservada, bagunça eliminada.
Arquivar uma página como Markdown
Salve o conteúdo significativo de uma página web como um arquivo .md pequeno e à prova de futuro, em vez de um snapshot HTML pesado cheio de scripts e rastreamento. O Markdown permanece legível em qualquer editor de texto daqui a décadas e ocupa uma fração do espaço.
Transformar documentação HTML legada em Markdown
Documentação antiga escrita como HTML feito à mão é dolorosa de manter. Converta-a para Markdown para trazê-la a um fluxo de trabalho moderno de docs-as-code — onde ela pode ser passada por linter, revisada em pull requests e renderizada por um gerador de site estático.

Detalhes Técnicos

Saída CommonMark vs GitHub Flavored Markdown
O conversor pode mirar no CommonMark puro ou, por padrão, no superconjunto GitHub Flavored Markdown. O CommonMark define cabeçalhos, ênfase, listas, links, imagens, código e blockquotes com precisão. O GFM adiciona quatro construções que mapeiam diretamente de HTML comum: <table> → tabela com pipes, itens de lista com checkbox → listas de tarefas, <del>/<s> → texto riscado, e URLs nuas → autolinks. Como a maioria do conteúdo web usa tabelas e afins, a saída GFM é o padrão prático; escolha CommonMark apenas quando o renderizador de destino não entender as extensões GFM, caso em que tabelas caem para HTML bruto.
Conversão com Perdas e Irreversível — Dito Claramente
O HTML é estritamente mais expressivo do que o Markdown, então a conversão não pode ser sem perdas, e vale a pena ser franco sobre isso. O Markdown não tem sintaxe para <div>, <span> ou outros contêineres genéricos; nenhuma forma de carregar nomes de classe, id, style inline, colspan/rowspan ou atributos data-* arbitrários; e nenhuma representação para a maioria dos elementos semânticos ou de layout. Esses são desencapsulados (conteúdo mantido, tag descartada), descartados (atributos), ou — quando descartar perderia significado — preservados como HTML inline bruto. Uma ida e volta HTML → Markdown → HTML não reproduzirá o original. Essa é uma troca deliberada: o Markdown existe para ser limpo, comparável por diff e editável por humanos, não para espelhar o HTML. A maioria dos concorrentes ignora isso; declará-lo permite que você decida de olhos abertos se o Markdown é o destino certo.
Compromissos de Estilo: ATX/Setext, Inline/Referência, Cercado/Indentado
Três escolhas de saída têm compromissos reais. Cabeçalhos ATX (#) cobrem todos os seis níveis e fazem grep de forma limpa; Setext (sublinhado) só existe para H1/H2, então a ferramenta o emite para os dois níveis superiores e cai para ATX abaixo. Links inline mantêm a URL ao lado do texto — melhor para links esparsos; links de referência puxam as URLs para o pé do documento — melhor para prosa densa em links e reuso por rótulo. Para código, blocos cercados (três crases) carregam uma info string de linguagem e aninham com segurança, enquanto blocos de código indentados (quatro espaços) não conseguem expressar uma linguagem e quebram dentro de listas — então este conversor sempre emite blocos cercados a partir de <pre><code>.

Boas Práticas

Formate o HTML Antes de Converter
HTML minificado ou profundamente emaranhado — especialmente tabelas de layout aninhadas e elementos inline avulsos — converte de forma mais limpa quando está bem formado primeiro. Passe a fonte bagunçada pelo nosso Formatador HTML para fazer o pretty-print e normalizá-lo, depois converta. Entrada limpa rende Markdown limpo com menos quedas para HTML bruto.
Espere e Revise as Perdas
Trate a conversão como com perdas por design. Classes, estilos inline, invólucros <div>/<span> e atributos exóticos somem na saída, e isso geralmente é o que você quer para um Markdown portável — mas examine o resultado em busca de algo semanticamente importante que vivia apenas num atributo (um aria-label, uma célula mesclada por colspan) e adicione-o de volta à mão se importar.
Escolha o Estilo de Link pela Densidade do Documento
Use links inline para prosa com um link aqui e ali — a URL fica ao lado do seu texto e a fonte se lê naturalmente. Mude para links de referência quando uma seção tem muitos links ou reutiliza as mesmas URLs: puxá-las para uma lista numerada no pé mantém os parágrafos escaneáveis e evita repetir URLs longas.
Converta para Markdown Antes de Enviar Páginas a um LLM
Quando você alimenta conteúdo web a um modelo — para um prompt, um embedding ou um repositório RAG — converta o HTML para Markdown primeiro. Você elimina tags, scripts e estilização que desperdiçam tokens e adicionam ruído, mantém a estrutura que o modelo de fato usa e encaixa substancialmente mais conteúdo real dentro da janela de contexto.
Verifique Tabelas Complexas Após a Conversão
Tabelas com pipes GFM são planas — sem tabelas aninhadas, sem conteúdo de bloco em células, sem células mescladas. Após converter uma tabela densa em dados ou de layout, confira o Markdown: grades simples convertem perfeitamente, mas qualquer coisa com colspans ou blocos aninhados degrada e pode aparecer como HTML bruto. Simplifique a tabela de origem primeiro se uma tabela com pipes limpa importar.

Perguntas Frequentes

Como os links inline vs referência são tratados?
Você escolhe com o rádio Links. O estilo inline escreve cada âncora como [texto](url) exatamente onde ela aparece — compacto e óbvio para um ou dois links por parágrafo. O estilo de referência escreve [texto][1] na prosa e reúne todas as URLs como definições [1]: https://… no rodapé do documento, o que mantém legível o texto com muitos links e permite reutilizar uma URL por rótulo. Ambos produzem saída renderizada idêntica; é puramente uma escolha de legibilidade da fonte. As imagens seguem a mesma regra: um <img> vira ![alt](src) inline ou ![alt][1] no modo de referência.
Cabeçalhos ATX vs Setext — qual devo usar?
Cabeçalhos ATX prefixam a linha com cerquilhas — # H1, ## H2, ### H3 — e funcionam para todos os seis níveis. Cabeçalhos Setext sublinham o texto em vez disso: uma linha de = sob uma linha a torna um H1, uma linha de - a torna um H2. O detalhe é que o Setext só existe para os níveis 1 e 2, então este conversor emite Setext para <h1>/<h2> e cai automaticamente para ATX em <h3> e mais profundos. ATX é a escolha mais comum, mais portável e mais fácil de fazer grep; escolha Setext apenas se um guia de estilo ou linter a jusante exigir.
O que acontece com HTML que o Markdown não consegue representar, como <div> e <span>?
O Markdown não tem sintaxe para contêineres genéricos, então invólucros estruturais como <div>, <span>, <section> e <article> são desencapsulados — seu texto e elementos filhos são mantidos, mas a própria tag desaparece porque não há nada no Markdown para mapeá-la. Nomes de classe, atributos id, atributos style inline e atributos data-* são descartados pela mesma razão: o Markdown não tem como expressá-los. Quando um elemento genuinamente não tem equivalente em Markdown e descartá-lo perderia significado, o conversor o deixa como HTML inline bruto em vez de apagar silenciosamente o conteúdo. Isso é por design — veja a pergunta sobre se a conversão é sem perdas.
Ele remove <script> e estilos?
Sim. Elementos <script> e <style>, junto com seu conteúdo, são removidos inteiramente — eles são código e CSS, não conteúdo do documento, e não têm lugar no Markdown. O mesmo vale para <link>, <meta> e outros elementos de nível de cabeçalho quando você cola uma página inteira. Event handlers inline como onclick e CSS em atributos style também são descartados. O resultado é apenas conteúdo de texto, que é exatamente o que você quer quando o Markdown está indo para um repositório de documentação, um gerador de site estático ou uma janela de contexto de LLM. Se você precisa da estilização preservada, o Markdown é o formato de destino errado.
Como tabelas e listas aninhadas são tratadas?
Listas aninhadas convertem de forma limpa: cada nível de aninhamento de <ul>/<ol> vira dois espaços de indentação, e listas ordenadas são renumeradas a partir de 1. Tabelas são mais complicadas. As tabelas com pipes do GitHub Flavored Markdown são planas por especificação — uma célula de tabela não pode conter outra tabela, nem pode conter elementos de bloco como listas ou múltiplos parágrafos. Então um <table> simples converte para uma tabela com pipes limpa, mas uma tabela com uma tabela aninhada dentro de uma célula, ou com conteúdo de bloco em células, degrada: o conversor achata o que pode e cai para deixar as partes complexas como HTML bruto para que nenhum dado seja perdido. Tabelas de layout profundamente aninhadas de páginas antigas são o pior caso — considere simplificar o HTML primeiro.
A conversão de HTML para Markdown é sem perdas?
Não, e é importante ser honesto sobre isso. O HTML é muito mais expressivo do que o Markdown: ele tem centenas de elementos e atributos arbitrários, enquanto o Markdown cobre um conjunto pequeno e deliberado — cabeçalhos, ênfase, listas, links, imagens, código, blockquotes e (com GFM) tabelas, listas de tarefas e texto riscado. Qualquer coisa fora desse conjunto não tem representação: colspans, atributos personalizados, estilos inline, estrutura de <div>/<span> e a maioria dos invólucros semânticos são descartados ou preservados apenas como HTML bruto. Converter HTML → Markdown → HTML não reproduzirá o original byte por byte. A conversão é com perdas de propósito — o objetivo é texto limpo, portável e editável por humanos, não uma ida e volta fiel. Para ir na direção contrária, use o nosso conversor de Markdown para HTML.
Posso alimentar o Markdown a um LLM ou ChatGPT?
Sim — este é um dos melhores usos modernos. O HTML bruto desperdiça tokens com tags, atributos, scripts e estilização que um modelo não precisa, e o ruído pode degradar a qualidade da recuperação num pipeline RAG. Converter uma página para Markdown elimina essa sobrecarga enquanto mantém a estrutura que um modelo lê bem: cabeçalhos viram hierarquia, listas continuam listas, tabelas continuam tabelas e links continuam links. A saída é tipicamente uma fração da contagem de tokens do HTML original, então você encaixa mais conteúdo real na janela de contexto. Cole uma página raspada aqui, copie o Markdown e coloque-o no seu prompt, etapa de embedding ou repositório de documentos.
Meus arquivos são enviados para um servidor?
Não. A conversão roda inteiramente no seu navegador: o HTML é analisado num DOM e serializado em Markdown localmente com JavaScript, e nada é transmitido, armazenado ou registrado. Você pode confirmar isso abrindo a aba Rede do seu navegador — converter dispara zero requisições de rede. Isso torna a ferramenta segura para exportações de CMS internas, páginas não publicadas, conteúdo de clientes e qualquer coisa sob NDA. Não há etapa de upload e nenhum limite de tamanho além do que o seu navegador consegue manter confortavelmente na memória.
Funciona offline?
Sim, depois que a página carrega. O analisador de DOM e o serializador de Markdown rodam ambos no navegador sem ida e volta ao servidor, então você pode converter com a sua rede desconectada — num avião, atrás de um firewall rígido ou sempre que você preferir que uma página nunca saísse da sua máquina. Isso decorre diretamente do design que prioriza a privacidade: como nada é enviado para lugar nenhum, não há nada para que a ferramenta precise da rede após o carregamento inicial.
Posso converter Markdown de volta para HTML?
Sim. Mude para a aba Markdown → HTML, ou abra o conversor de Markdown para HTML dedicado, cole o seu Markdown e obtenha HTML renderizado com uma pré-visualização ao vivo, suporte completo a GFM e saída de fragmento, documento completo ou e-mail inline. As duas direções se complementam: use HTML → Markdown para trazer conteúdo web existente para um fluxo de trabalho Markdown, e Markdown → HTML para publicá-lo ou pré-visualizá-lo. Se o HTML de origem estiver bagunçado, o nosso Formatador HTML pode arrumá-lo antes de você converter.

Ferramentas relacionadas

Ver todas as ferramentas →