Melhorar o manuseio de parágrafos markdown

De acordo com a especificação do CommonMark

Parágrafo
Uma quebra de linha é uma nova linha (U+000A), um retorno de carro (U+000D) não seguido por uma nova linha, ou um retorno de carro e uma nova linha subsequente.

Ou a especificação do GitHub Flavored Markdown

Parágrafo
Uma sequência de linhas não em branco que não pode ser interpretada como outros tipos de blocos forma um parágrafo. O conteúdo do parágrafo é o resultado da análise do conteúdo bruto do parágrafo como elementos inline. O conteúdo bruto do parágrafo é formado pela concatenação das linhas e pela remoção de espaços em branco iniciais e finais.

Portanto,

Foo
bar

Deveria ser renderizado como

Foo bar

Mas, em vez disso, é renderizado como

Foo
bar

Veja o exemplo do CommonMark ou o exemplo do GitHub.

Isso é um bug ou uma divergência intencional em relação à especificação?

Caso de uso

Essa forma de tratamento de parágrafos torna-se particularmente irritante quando alguns usuários respondem por e-mail, onde muitos clientes de e-mail (como o Thunderbird) criam quebras de linha a cada poucos caracteres. Embora, sob a perspectiva do design, os usuários de e-mail não devam precisar pensar nisso ou alterar suas configurações de e-mail.

Aqui está um exemplo:

A única outra situação que consigo imaginar onde isso também ocorreria é quando novos usuários começam a usar o Discourse; às vezes, eles criam parágrafos manuais dessa forma.

3 curtidas

Isso é intencional e segue o mesmo comportamento do GitHub:

Os administradores podem ativar a configuração “quebras de linha tradicionais do Markdown” nas configurações do site para alterar o comportamento.

Você pode se interessar por este tópico, que descreve parte da fundamentação por trás da implementação.

5 curtidas

Muito obrigado. Vou me informar sobre isso.

4 curtidas