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 Curtiram

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

2 Curtiram

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 Curtiram

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 Curtiram

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 Curtiram

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 Curtiu

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 Curtiram

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

2 Curtiram

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

3 Curtiram

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