Intestazioni HTML con interruzioni di riga -> nessuna intestazione e incoerenza tra anteprima e post renderizzato

Ciao, ho alcuni post importati da un altro software per forum con interruzioni di riga nei titoli. Questi vengono visualizzati correttamente nell’anteprima del post, ma non vengono renderizzati come titoli nel post finale. Sto riscontrando questo problema sul mio forum aggiornato ieri e anche qui su Discourse Meta:


Test del titolo con interruzioni di riga

Paragrafo normale.

Titolo senza interruzioni di riga


Lascia vuoto <h2> e racchiude il testo successivo in <p>:

<h2 dir="ltr">
</h2><p dir="ltr">Test del titolo con interruzioni di riga</p>

Sono sicuro al 99% che si tratti di una recente regressione, poiché ho controllato specificamente i titoli nei post importati dallo stesso utente durante il processo di migrazione, e sia l’utente che io ricordiamo che venivano renderizzati correttamente.

2 Mi Piace

Hmm, considerando le cose ltr lì @Osama, potrebbe essere correlato al CSS flipper che abbiamo aggiunto di recente?

2 Mi Piace

Non credo, perché l’HTML finale/cotto del post è errato e il CSS flipper (sia quello vecchio che quello nuovo) non è assolutamente coinvolto nel processo di cottura del post.

^ il testo all’interno del <p> dovrebbe essere all’interno dell’<h2> e non dovrebbe esserci affatto <p> (penso).

6 Mi Piace

Sembra che ciò accada durante la compilazione, in particolare durante l’analisi markdown.

Passare un’intestazione con interruzioni di riga a PrettyText.markdown restituisce il contenuto dell’intestazione racchiuso in un tag p.

E poi, durante la pulizia, il paragrafo viene estratto dal tag dell’intestazione, risultando in quanto segue:

Suppongo che ciò accada poiché un paragrafo in un tag di intestazione non è conforme alle specifiche?

Sto ancora esaminando il codice del parser markdown per capire perché il contenuto viene racchiuso nel tag p in primo luogo.

2 Mi Piace

Oh questo è molto correlato a:

Va bene se aspetto qualche altra settimana che esca Loofah

Manderò un Tweet a Mike per menzionare che è saltato fuori questo problema.

2 Mi Piace

Ciao, grazie per aver esaminato la questione. L’HTML non si preoccupa delle interruzioni di riga, quindi tecnicamente questo è corretto:

<h2>

Heading test with line breaks

</h2>

Sembra semplicemente essere un problema dell’analizzatore Markdown che viene eseguito dopo/all’interno dell’analizzatore HTML, che genera tag <p> per i ritorni a capo.

1 Mi Piace

Ciao, abbiamo risolto questo problema con

come si vede qui:

Test di intestazione con interruzioni di riga

Paragrafo normale.

Intestazione senza interruzioni di riga


8 Mi Piace

Felice di sentirlo, grazie @nat! Richiede la rielaborazione dei post?

2 Mi Piace

Sì, richiede una nuova cottura — non possiamo eseguirla automaticamente per te con questa correzione poiché è un’operazione costosa.

3 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 2 giorni. Non sono più consentite nuove risposte.