Guia
Travessões no Markdown: mantenha o código-fonte ASCII
Mantenha o Markdown previsível quando um editor, plugin ou gerador transforma sequências ASCII em U+2013 ou U+2014.
Por Kris Vinters · Publicado em · 4 min de leitura
Descubra qual camada converte os traços
Markdown não exige essa conversão. Uma etapa tipográfica separada pode converter -- em U+2013 e --- em U+2014. O Python-Markdown chama a extensão de SmartyPants; outros editores e geradores oferecem opções parecidas.
A conversão pode acontecer ao digitar, ao gerar HTML ou em um filtro posterior. Um editor muda o arquivo-fonte; um renderizador pode manter ASCII na fonte e colocar Unicode somente na saída.
Extensões que entendem Markdown normalmente excluem código. Porém, a autocorreção e a ordem do pipeline podem agir antes do analisador. O front matter costuma ser processado separadamente, mas um formatador do arquivo inteiro pode reescrevê-lo. Teste a sua cadeia real.
Escreva e preserve uma fonte somente ASCII
Desative a pontuação inteligente no editor que salva a fonte. Se o HTML também precisar ficar em ASCII, desative a substituição na extensão ou no gerador. Pesquise smart punctuation, SmartyPants, smart dashes ou símbolos tipográficos.
Mantenha -- e --- como sequências ASCII se essa for a sua convenção. Em blocos de código, front matter, exemplos de shell e identificadores, use exatamente a sintaxe esperada. Revise separadamente o diff da fonte e a saída gerada.
Se um formatador precisar continuar ativo, limite-o à prosa ou exclua código, front matter, arquivos gerados e dados de teste. Uma verificação de caracteres não ASCII também precisa permitir idiomas e amostras intencionais.
Se o texto já contém traços Unicode, cole somente a prosa no Ghostchars, abra Avançado e selecione "Pontuação em texto simples". A opção converte U+2013 e U+2014 em hifens ASCII, mas também muda outros sinais tipográficos. Revise os achados antes de tratar um arquivo-fonte inteiro.
Isso normaliza caracteres, não atribui autoria. O limpador muda a pontuação selecionada. O relatório de prosa fornece medições, não um veredito.
Mantenha código, front matter e diffs estáveis
Adicione uma amostra de regressão com --, ---, código inline, um bloco cercado e um valor de front matter. Gere como em produção e compare fonte e saída.
Se a fonte continuar em ASCII, o renderizador criou a saída tipográfica. Se Unicode já estiver no arquivo, confira autocorreção, formatação ao salvar, transformações ao colar e formatadores anteriores ao commit.
Perguntas sobre traços no Markdown
O Markdown converte dois ou três hifens sozinho?
Nenhuma regra universal exige isso. Uma extensão, editor, tema ou gerador pode adicionar a conversão. Confira a implementação e a configuração.
A pontuação inteligente muda blocos de código?
Extensões de Markdown normalmente os excluem, mas um editor ou formatador global pode agir antes do analisador. Verifique o pipeline com uma amostra gerada.
A página publicada pode usar U+2014 com fonte ASCII?
Sim. Um renderizador pode deixar --- na fonte e emitir U+2014 somente no HTML. Se fonte e saída precisarem ser ASCII, desative também essa etapa.
Veja mais explicações práticas em todos os guias sobre caracteres ocultos e os limites da limpeza.