Ir para o conteúdo
freeonlinemarkdowneditor
Português

Blog

O que um removedor de Markdown joga fora, e como manter

markdowntexto simplesdecisões de projeto

“Remover o Markdown” soa como uma única operação. Na verdade é uma série de pequenas decisões, e um conversor toma cada uma delas por você, admitindo ou não.

Aqui está o que costuma ser decidido mal.

A numeração de listas

A mais consequente. As bibliotecas comuns tratam uma lista como uma construção de formatação e a achatam, o que remove 1. 2. 3. junto com os caracteres de marcador.

Para uma lista com marcadores isso é discutivelmente aceitável. Para uma numerada, destrói o sentido: os números se referiam a alguma coisa. Respostas a um questionário numerado, passos de uma sequência, itens classificados — tudo vira um monte sem ordem.

Aqui a numeração é mantida, inclusive listas que começam em 7 e uma lista numerada aninhada dentro de outra.

[a documentação](https://example.com/guia) tem duas informações. Texto simples não tem onde colocar a segunda, então um conversor precisa ou escrevê-la ou descartá-la.

Descartar é silencioso e comum. Quem lê recebe “a documentação” e nenhuma forma de chegar lá. O padrão aqui escreve as duas — a documentação (https://example.com/guia) — porque quem não consegue seguir o link perdeu algo. Só texto e só URL ficam disponíveis quando você sabe que o link não importa.

A linguagem de um bloco de código

Um bloco marcado ```java carrega um fato: isto é Java. Remova a marcação e esse fato vai junto, deixando um bloco de símbolos sem explicação que poderia ser qualquer coisa.

A linguagem é emitida como rótulo — [java] — para quem lê saber. Desligado, ou mantido como a marcação original, se você preferir.

O texto alternativo de uma imagem

Uma imagem não sobrevive como imagem. Mas o texto alternativo dela é uma frase que alguém escreveu para descrevê-la, e muitas vezes é a única descrição daquele conteúdo no documento. Descartar a imagem e manter a descrição costuma ser melhor do que descartar as duas.

Notas de rodapé, citações, divisores, frontmatter

Cada um é conteúdo que um removedor pode eliminar caladamente. Cada um é mantido por padrão aqui e desligável individualmente.

Por que sem perdas é o padrão certo

O teste que resolve a maioria desses casos: alguém que nunca viu a entrada conseguiria entender tudo o que ela dizia, apenas pela saída?

Se a resposta é não, o conversor jogou fora informação em nome de quem lê sem perguntar. Um conversor que deixa algo que você precisa apagar é irritante por dez segundos. Um que apaga algo de que você precisava é um problema que talvez você só note quando importar.

Então os padrões mantêm tudo, e cada remoção é uma chave que você escolhe. Uma predefinição — Relatório e tabelas — quebra essa regra de propósito e remove blocos de código e imagens, porque existe para levar uma tabela comparativa a um relatório onde um trecho solto é ruído. É a exceção, ela diz isso, e a predefinição Padrão não remove absolutamente nada.

As coisas que realmente não têm resposta

Algumas decisões não têm um padrão correto, apenas um contexto:

  • Como é um título quando nada pode torná-lo um título? Simples, maiúsculo, ou com o # mantido.
  • Como é uma tabela sem tabela? Colunas alinhadas, tabulações, ou rótulo e valor.
  • Como é uma lista de tarefas? [ ], , ou nada.

É para isso que as predefinições existem. Em vez de escolher uma e chamá-la de universal, cada predefinição responde a todas essas perguntas para um destino específico — um cliente de e-mail, uma planilha, uma janela de chat, uma página de documentação, um formulário web — e mostra um exemplo para você ver as respostas antes de confiar nelas.

Experimentar o conversor →