Títulos HTML com quebras de linha -> sem título e inconsistência entre visualização e postagem renderizada

Olá, tenho algumas postagens importadas de outro software de fórum com quebras de linha nos títulos. Elas são exibidas corretamente na prévia da postagem, mas não são renderizadas como títulos na postagem final. Estou vendo esse problema no meu fórum atualizado ontem e também aqui no Discourse Meta:


Teste de título com quebras de linha

Parágrafo normal.

Título sem quebras de linha


Ele está deixando o <h2> em branco e está envolvendo o texto seguinte em <p>:

<h2 dir="ltr">
</h2><p dir="ltr">Teste de título com quebras de linha</p>

Tenho 99% de certeza de que isso é uma regressão recente, pois verifiquei especificamente os títulos em postagens importadas do mesmo usuário durante o processo de migração, e o usuário e eu ambos nos lembramos que eles foram renderizados corretamente.

2 curtidas

Hmm, considerando as coisas de LTR lá, @Osama, isso poderia estar relacionado ao CSS flipper que adicionamos recentemente?

2 curtidas

Não acho, porque o HTML final/cozido da postagem está incorreto e o CSS flipper (seja o antigo ou o novo) não está envolvido no processo de cozimento da postagem.

^ o texto dentro do <p> deveria estar dentro do <h2> e não deveria haver <p> nenhum (acho eu).

6 curtidas

Isso parece acontecer durante o cozimento, especificamente na análise de markdown.

Passar um cabeçalho com quebras de linha para PrettyText.markdown retorna com o conteúdo do cabeçalho envolvido em uma tag p.

E então, durante a limpeza, o parágrafo é extraído da tag do cabeçalho, resultando no seguinte:

Suponho que isso aconteça porque um parágrafo em uma tag de cabeçalho não está em conformidade com as especificações?

Ainda estou revisando o código do analisador de markdown para descobrir por que o conteúdo está sendo envolvido em uma tag p em primeiro lugar.

2 curtidas

Ah, isso está muito relacionado a:

Eu não me importo de esperar mais algumas semanas para o Loofah ser lançado.

Vou enviar um Tweet para o Mike para mencionar que isso surgiu.

2 curtidas

Olá, obrigado por investigar isso. O HTML não se importa com quebras de linha, então tecnicamente isso está correto:

<h2>

Teste de título com quebras de linha

</h2>

Parece simplesmente ser um problema do analisador de Markdown rodando depois/dentro do analisador de HTML, que está gerando tags <p> para os retornos de linha.

1 curtida

Olá, corrigimos isso com

como visto aqui:

Teste de título com quebras de linha

Parágrafo normal.

Título sem quebras de linha


8 curtidas

Que bom saber, obrigado @nat! Isso requer reprocessar posts?

2 curtidas

Sim, requer um novo cozimento — não podemos fazê-lo automaticamente para você com esta correção, pois é uma operação cara.

3 curtidas

Este tópico foi fechado automaticamente após 2 dias. Novas respostas não são mais permitidas.