Também disponível em: English · Español · Français · العربية
Converter HTML para Markdown
Cola HTML e recebe Markdown limpo, com o que não se consegue exprimir assinalado em vez de perdido em silêncio.
O que é converter HTML para Markdown?
Converter HTML para Markdown é passar marcação com etiquetas — <h1>, <p>, <strong>, <a> — para a sintaxe simples e legível do Markdown: o cardinal, os asteriscos, os colchetes. É o caminho inverso do que a maior parte das ferramentas faz, porque normalmente escreve-se Markdown e gera-se HTML para mostrar; aqui parte-se de HTML já existente e quer-se o texto de origem, mais curto e mais fácil de editar.
Precisa disto quem copia conteúdo de uma página web e quer guardá-lo como nota ou documento, quem exporta de um editor de texto formatado (um documento, um email, um CMS) e precisa do resultado num README ou numa página de um site estático, e quem alimenta um repositório de documentação que só aceita Markdown. Em qualquer um destes casos, colar o HTML tal como está costuma trazer marcação a mais — classes, ids, atributos de estilo — que o Markdown não sabe representar, e a ferramenta diz-te exatamente o que é.
Como usar
- Cola o HTML no painel da esquerda. Podes escrever ou colar diretamente a partir de uma página, de um editor ou de uma exportação.
- Ajusta as opções conforme precisares. Liga ou desliga os extras do GitHub e a opção de manter o HTML sem equivalente, consoante o destino do texto.
- Copia o Markdown do painel da direita. O resultado atualiza-se enquanto escreves, e o botão de copiar leva o texto para a área de transferência num só clique.
O que a conversão consegue e o que não consegue
Não existe uma especificação para este sentido da conversão. O CommonMark define com exatidão como o Markdown se transforma em HTML, mas não diz nada sobre o caminho inverso — por isso não há uma bateria de testes oficial para passar, e qualquer conversor que se anuncie como «100% preciso» está a prometer algo que nunca chegou a ser definido em lado nenhum.
A pergunta que se consegue medir é uma ida e volta: pegar em cada uma das 652 saídas HTML esperadas da bateria de testes do CommonMark, converter para Markdown com esta ferramenta, converter esse Markdown de novo para HTML, e verificar se o HTML volta igual ao original. O resultado medido é 472 em 652 (72,4%) byte a byte iguais, e 540 em 652 (82,8%) iguais se se ignorarem espaços em branco irrelevantes entre etiquetas.
Estes números são os da configuração com que a página é publicada, que mantém o HTML sem equivalente. Com essa opção desligada, a mesma ida e volta dá 471 e 538 — manter o que o formato não consegue dizer não é só a escolha segura, é também, por pouco, a mais fiel.
Os extras do GitHub — tabelas, texto rasurado e listas de tarefas — não alteram em nada esta pontuação, porque a bateria do CommonMark não contém nenhuma tabela: testa apenas a sintaxe que a própria especificação define. Estas opções importam para converter HTML real, não para o resultado deste teste.
Porque é que algumas coisas ficam por converter
Das 112 diferenças encontradas na ida e volta, 55 — pouco menos de metade — correspondem às secções de blocos HTML e HTML em bruto da própria especificação do CommonMark: HTML que simplesmente não tem forma de se escrever em Markdown. As outras 57 são uma cauda fina onde o resultado volta equivalente mas escrito de outra maneira: nove em listas, nove em ligações, sete em itens de lista, seis em código em linha, cinco em blocos de código, cinco em ênfase, e casos isolados no resto.
A conclusão de fundo não é sobre esta ferramenta nem sobre nenhuma outra — é sobre o formato. O Markdown tem sintaxe para títulos, parágrafos, listas, citações, código, ênfase, ligações, imagens e linhas separadoras, e nada mais do que isso. Um <div>, um <span>, uma classe, um id, o alinhamento de uma célula de tabela ou um vídeo incorporado não têm forma de se escrever em Markdown, seja qual for o conversor.
Por isso esta ferramenta mantém por omissão, como HTML literal, tudo o que não se consegue traduzir, em vez de remover as etiquetas e deixar só o texto — e por isso o painel avisa quando um elemento não teve equivalente. Achatar uma tabela num parágrafo corrido em silêncio é o tipo de perda que ninguém nota até muito mais tarde, quando já é tarde para corrigir. A opção pode ser desligada, mas é uma escolha com perda, e a página diz isso com todas as letras.
A ferramenta usa o próprio analisador de HTML do navegador em vez de trazer um de fora. Não é só uma questão de tamanho do ficheiro: o analisador do navegador é o único que interpreta HTML mal formado ou pouco habitual exatamente como o navegador o interpretaria ao mostrá-lo — por isso o que convertes é, garantidamente, o que verias na página.
Porque é gratuito?
A conversão corre inteiramente no teu navegador, por isso não há custo de servidor a cobrar de volta: nem conta, nem limite diário, nem marca de água no resultado. O HTML que colas nunca sai do teu computador — não há upload, não há cópia guardada nem histórico do lado do servidor. É por isso que esta ferramenta, como as outras do site, pode ficar gratuita e sem registo indefinidamente.