Conversor de HTML para Markdown
Transforme HTML em Markdown limpo: títulos, listas, links e ênfases viram a sintaxe leve que editores, wikis e geradores de site estático entendem. Scripts, estilos e ruído de marcação ficam pelo caminho. Grátis, sem cadastro, e o conteúdo não sai do seu navegador.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Por que voltar de HTML para Markdown
HTML é ótimo para o navegador e péssimo para gente: editar um post preso em divs e spans é sofrimento, versionar é ilegível, migrar é refém do sistema antigo. Markdown inverte a lógica — o conteúdo vira texto puro, legível em qualquer editor, versionável no Git, aceito por geradores estáticos, wikis e ferramentas de nota. Converter o acervo em HTML para Markdown é libertar o conteúdo do formato em que ele nasceu.
Como converter
Cole o HTML — o código-fonte da página ou só o trecho do conteúdo — e receba o Markdown correspondente. Títulos, listas, links, imagens, tabelas simples, negrito e itálico são traduzidos para a sintaxe equivalente; scripts e estilos são descartados, porque Markdown descreve conteúdo, não comportamento. Quanto mais limpo o trecho colado, mais limpo o resultado: se puder, cole só o miolo do artigo, sem menu e rodapé.
Migração de acervo em lote, via API
Migrar um blog inteiro à mão não é plano, é castigo. Via API, cada post em HTML vira um arquivo Markdown por US$ 0,002 por chamada, com documentos de até 25 MB — os quinhentos posts do acervo passam pelo mesmo funil e saem prontos para o gerador estático. Na página, a conversão avulsa segue grátis, ilimitada e sem cadastro.
Casos de uso
Migrar o blog para um gerador estático
Rafael Almeida Costa levou o blog do CMS antigo para um site estático: exportou os posts em HTML e converteu tudo em .md via API — a parte que parecia impossível levou uma tarde.
Guardar artigos como notas em Markdown
Referências e artigos importantes viram notas no app de anotações: colou o HTML, saiu Markdown limpo, pronto para destacar e linkar na base de conhecimento pessoal.
Preparar conteúdo para revisão em texto
Para revisar o texto institucional do site, a equipe converte as páginas em Markdown: a revisão acontece em texto puro, com diff legível, longe do medo de quebrar a marcação.
Perguntas frequentes
O que acontece com scripts, menus e propaganda do HTML?
Scripts e estilos são descartados na conversão — Markdown é conteúdo, não comportamento. Menus e rodapés colados junto viram texto: para um resultado enxuto, cole só o trecho do conteúdo que interessa.
As tabelas sobrevivem à conversão?
Tabelas simples viram tabelas Markdown. Estruturas muito aninhadas, que a sintaxe do Markdown não representa, são simplificadas no processo.
E as imagens?
Viram referências de imagem em Markdown apontando para o endereço original — o arquivo em si não é baixado nem incorporado.
Qual o preço?
Zero na página: grátis, ilimitado, sem cadastro. A API, pensada para converter acervos inteiros, sai a US$ 0,002 por chamada.
Meu conteúdo fica salvo em algum lugar?
Não: o processamento é local, no seu navegador. Nada é enviado nem guardado em servidor.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/data/html-to-markdown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/html-to-markdown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/html-to-markdown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/html-to-markdown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/html-to-markdown", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.html_to_markdown",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |