Duas representações de um documento
Markdown permite que um escritor indique títulos, ênfase, listas e links com pontuação curta. HTML nomeia essas estruturas com elementos como h2, strong, ul e a. Um renderizador interpreta Markdown e escreve HTML; ele não substitui apenas cada asterisco ou sinal de cerquilha (#). Contexto importa: um hash dentro de texto comum é diferente de um marcador de título no início de uma linha. HTML também tem atributos, elementos aninhados e regras de análise de navegador que a forma abreviada de Markdown pode não expressar.
Use Markdown quando o código-fonte deve permanecer fácil de editar em texto simples. Use HTML quando o destino espera elementos explícitos ou quando você precisa inspecionar o que um navegador receberá. Antes de converter, identifique o dialeto Markdown aceito pelo destino. MultiVerto lida com um subconjunto documentado: títulos, parágrafos, listas de marcadores simples, ênfase, links e código inline em ambas as direções. Blocos de código cercados funcionam apenas para HTML. Alguns construtos não suportados são rejeitados; outros aparecem como texto literal.
Uma conversão trabalhada e seu retorno
Digite um título com duas cerquilhas seguido de “Anotações”, depois uma linha em branco e a frase “Um rascunho **pronto** e [fonte](https://example.com).”. O conversor de Markdown para HTML produz um elemento h2 com “Anotações” e um parágrafo no qual strong destaca “pronto”; o link conserva https://example.com no atributo href. O navegador exibe o título, a palavra em negrito e o texto do link, enquanto o código HTML mantém os limites dos elementos. O exemplo incorporado usa exatamente esse texto em português. Altere a palavra em destaque e compare o resultado: a marcação descreve a estrutura, mas o conteúdo da frase permanece legível.
Agora coloque o HTML suportado no conversor de HTML para Markdown. Ele pode expressar o h2 como um título Markdown, o elemento strong como asteriscos em pares e o link como texto entre colchetes mais um URL. O texto pode parecer o mesmo após ambas as conversões, mesmo quando espaços em branco, quebras de linha ou ortografia de origem exata diferem. Compare a estrutura visível e o link alvo, não apenas uma correspondência byte a byte com o Markdown original.
- Markdown: ## Anotações e **pronto**
- HTML: elementos h2 e strong
- Markdown novamente: verifique o título, ênfase e link
Por que uma viagem de ida e volta pode perder informações
HTML tem estruturas e atributos sem equivalente simples em Markdown. Um elemento span com estilo, uma tabela, um atributo de dados personalizado ou listas aninhadas podem não sobreviver a uma conversão de HTML para Markdown; essa ferramenta local rejeita muitos desses casos. Na outra direção, os analisadores Markdown variam no suporte para tabelas, listas de tarefas, citações em bloco e HTML bruto. MultiVerto rejeita vários destes ao invés de silenciosamente inventar a saída. Uma conversão bem sucedida de um pequeno exemplo suportado, portanto, não certifica um documento complexo.
Mesmo estruturas suportadas podem ser escritas de várias maneiras. Um elemento forte HTML e um elemento b podem ambos se tornar asteriscos emparelhados, então a escolha original de tag desaparece. Os navegadores também podem reparar HTML malformado. Antes de publicar o material convertido, inspecione a marcação gerada e renderize-a no sistema de destino. Salve o arquivo original para recuperar comentários, decisões de layout ou atributos que a representação mais simples não pode reter.
Escapar é uma operação diferente
Codificar um caractere HTML para exibição não é o mesmo que transformar Markdown em estrutura HTML. Se você quiser que um leitor veja o texto literal <h2>Notes</h2> dentro de uma página, represente seus sinais de menor e maior como entidades HTML ou coloque-o em um contexto de código confiável. Se você quiser um título, emita o elemento h2 real. O codificador de entidades HTML vinculado abaixo lida com a representação de texto; o conversor Markdown cria elementos. Trate o conteúdo fornecido pelo usuário como não confiável em qualquer caminho.
O conversor local escapa texto simples em seu subconjunto Markdown suportado, mas um fluxo de trabalho de publicação real ainda deve usar um analisador mantido e um sanitizer apropriado quando a entrada de autor arbitrário pode conter links ou marcação. Verifique as regras de destino para URLs e tags permitidos. Uma revisão prática é converter um pequeno exemplo, inspecionar o código-fonte HTML, renderizar e, em seguida, reverter apenas a parte suportada. Quando o retorno perder um recurso, mantenha a fonte mais rica como a cópia autorizada.