Conversor de HTML para Markdown

Mover um artigo do WordPress para o Hugo, arquivar uma página do Confluence como notas ou limpar um e-mail em rich-text para um wiki de docs significa converter HTML em Markdown. Este conversor mapeia cabeçalhos, parágrafos, listas, links, imagens e blocos de código para seus equivalentes em Markdown, para que o conteúdo mantenha a estrutura sem o peso do HTML.

Como converter HTML para Markdown

  1. 1

    Cole HTML

    Páginas completas, corpos de e-mail em rich-text ou trechos, todos são analisados.

  2. 2

    Converter

    Cabeçalhos, parágrafos, listas, links, imagens e blocos de código são convertidos para Markdown.

  3. 3

    Copie o Markdown

    Cole a saída no Obsidian, Hugo, Jekyll, Notion ou em um repositório Git.

Mapeando HTML para Markdown

O conversor percorre o DOM e emite Markdown para cada elemento reconhecido. Tags de contêiner como <div>, <span>, <section> e <article> são removidas e seu conteúdo é mantido no nível de aninhamento correto.

Mapeamento de elementos

HTML Saída em Markdown
<h1> até <h6> # a ###### cabeçalhos
<strong>, <b> **texto**
<em>, <i> *texto*
<code> inline `texto`
<pre><code> bloco cercado por três crases, com linguagem se definida
<a href> [texto](url)
<img src alt> ![alt](src)
<ul><li> - item
<ol><li> 1. item
<blockquote> > citação
<hr> ---

O que acontece com o restante

Markdown não consegue expressar todos os elementos HTML. Tags sem equivalente em Markdown são removidas e apenas seu conteúdo textual é mantido:

  • <table>: o texto das células é mantido, mas a grade da tabela é perdida. Use um conversor com suporte a tabelas quando a estrutura importar.
  • <del>, <u> e outros estilos inline: o texto sobrevive, o estilo não.
  • <video>, <audio>, <iframe>: dessas incorporações não é produzido nada representável em Markdown.
  • <details> / <summary>: o texto interno é mantido, o widget expansível não.

Para conversões reversas sem perdas, converta a partir da fonte Markdown original em vez do HTML renderizado.

Perguntas frequentes

Envelopes <div> e <span> simples são descartados e seu conteúdo é emitido no nível de aninhamento correto. Divs apenas de layout se tornam invisíveis em Markdown, o que geralmente é o que você deseja para docs.

Sim. <pre><code class="language-js"> se torna um bloco cercado com js como dica de linguagem. Blocos de código indentados sem uma linguagem recorrem a blocos cercados simples.

O texto dentro das células de <table> é mantido, mas a grade em si não: linhas e colunas não são preservadas, então a estrutura é perdida. Use um conversor com suporte a tabelas quando a estrutura importar.

Quase, mas formatações sutis (links em estilo de referência, quebras de linha rígidas com dois espaços finais, marcadores de ênfase alternativos) podem ser normalizadas. Para uma conversão reversa sem perdas, mantenha o Markdown original.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas