Utilia

Conversor de HTML para Markdown

Converte HTML em Markdown e Markdown em HTML no navegador, com tabelas GitHub, rasurado, listas de tarefas e pré-visualização segura. Nada é enviado.

Conversão

Pré-visualização

A pré-visualização é sanitizada: os scripts, formulários e handlers de eventos são removidos e as imagens remotas nunca são carregadas.

Como converter HTML em Markdown

  1. Escolhe a direção: HTML → Markdown ou Markdown → HTML.
  2. Cola o teu código na caixa de entrada ou clica em Abrir um ficheiro para carregar um ficheiro .html, .htm, .md ou .txt do teu computador (até 10 MB).
  3. Ajusta as opções. Em HTML → Markdown, podes escolher o estilo dos Títulos, o Marcador de lista e o estilo dos Blocos de código. Em Markdown → HTML, Sanitizar o HTML (remover scripts e handlers de eventos) está ligado por omissão.
  4. Clica em Converter. O resultado também se atualiza enquanto escreves.
  5. Copia ou transfere o resultado. Inverter a direção passa o resultado para a entrada, para o converteres no sentido contrário e confirmares a ida e volta.

A Pré-visualização por baixo do resultado mostra como o Markdown fica apresentado, para verificares a conversão num relance.

O que faz a conversão de HTML para Markdown

O conversor lê o teu HTML com o próprio parser do navegador, num documento inerte: os scripts não correm e as imagens não são transferidas. Depois percorre a estrutura da página e escreve o equivalente Markdown de cada elemento:

  • <h1> a <h6> passam a títulos. ATX (# Título) escreve # a ######; Setext (sublinhados) sublinha os títulos de nível 1 e 2 com === ou --- (os níveis 3 a 6 usam sempre #).
  • <strong> e <b> passam a **negrito**, <em> e <i> passam a _itálico_, e o <code> inline passa a acentos graves.
  • As ligações passam a [texto](url "título") e as imagens a ![alt](src).
  • As listas usam o marcador escolhido (-, * ou +); as listas numeradas mantêm o número start, e as listas aninhadas são indentadas.
  • <pre><code> passa a um bloco de código, Delimitados (```) ou Indentados (4 espaços).
  • <blockquote>, <hr> e as quebras de linha também são convertidos.
  • <script>, <style>, <iframe>, <noscript> e elementos semelhantes são removidos com o seu conteúdo.

Os caracteres que, de outra forma, seriam lidos como sintaxe Markdown, como um * ou um # no início de uma linha, são escapados com uma barra invertida para que o texto fique literal.

GitHub Flavored Markdown

Com GitHub Flavored Markdown (tabelas, ~~rasurado~~, listas de tarefas) marcado:

  • As tabelas passam a tabelas com barras verticais e colunas alinhadas. O cabeçalho vem de uma linha <thead> ou de uma linha só com células <th>; se não houver nenhuma, é acrescentada uma linha de cabeçalho vazia, porque o GFM exige uma. O alinhamento das colunas é lido de align="right" ou de style="text-align: center". As barras verticais dentro das células são escapadas como \|, as quebras de linha passam a <br> e um colspan é completado com células vazias. Uma <caption> é escrita como parágrafo por cima da tabela.
  • <del>, <s> e <strike> passam a ~~rasurado~~.
  • As caixas de verificação no início dos itens de lista passam a itens de lista de tarefas: - [x] feito, - [ ] por fazer.

O Markdown não tem equivalente para tabelas aninhadas, linhas fundidas ou estilos de células. Uma tabela que contenha outra tabela é mantida em HTML em bruto, que a maioria dos renderizadores de Markdown aceita. Sem a opção GFM, todas as tabelas são mantidas em HTML.

Markdown → HTML

No sentido inverso, o Markdown é renderizado com um parser compatível com CommonMark, com as extensões GFM quando a opção está ligada. O resultado são fragmentos de HTML prontos a colar num CMS, num modelo de email ou numa página web. Quando Sanitizar o HTML (remover scripts e handlers de eventos) está marcado, o HTML em bruto incluído no Markdown é limpo: as etiquetas <script>, os atributos onclick e as ligações javascript: são removidos. Desmarca a opção apenas para Markdown escrito por ti.

Perguntas frequentes

O meu HTML é enviado para um servidor?

Não. As duas conversões correm inteiramente no teu navegador, e a página nunca envia o que colas ou abres. Podes converter em segurança documentação interna ou rascunhos.

A pré-visualização é segura com HTML não fiável?

Sim. A Pré-visualização passa sempre pelo DOMPurify: os scripts, formulários, frames e handlers de eventos são removidos, as ligações abrem num novo separador sem acesso a esta página e as imagens remotas nunca são carregadas. Só são apresentadas as imagens incorporadas como URLs data:.

Porque é que desaparecem partes da minha página?

O Markdown só descreve a estrutura do conteúdo. Os elementos de disposição, as classes CSS, os estilos inline, os formulários e os widgets incorporados não têm forma em Markdown, por isso só o texto é mantido. Os scripts e os estilos são removidos por completo.

Posso converter uma página web inteira?

Sim. Cola o código-fonte completo, incluindo <html> e <head>: só o conteúdo de <body> é convertido. Para um Markdown mais limpo, cola apenas a parte do artigo, sem a navegação e o rodapé.

Que variante de Markdown usa o resultado?

O resultado segue o CommonMark, o padrão suportado pelo GitHub, pelo GitLab, pelo Obsidian, pela maioria dos geradores de sites estáticos e por muitos editores de CMS. As tabelas, o rasurado e as listas de tarefas seguem a especificação GitHub Flavored Markdown.