Il testo dopo i tag div non viene renderizzato correttamente

Il testo che appare su una riga immediatamente successiva a un tag div non viene visualizzato correttamente. Inserire una riga vuota dopo la riga contenente il div risolve il problema.

<div>testo in div</div>
[un link]( `/admin/email/templates`.) **corsivo**
testo in div
[un link]( `/admin/email/templates`.) **corsivo**

Screenshot:

Altro HTML non causa il problema:

<small>testo piccolo</small>
[un link]( `/admin/email/templates`.) **corsivo**

testo piccolo
un link corsivo

<span>testo in span</span>
[un link]( `/admin/email/templates`.) **corsivo**

testo in span
un link corsivo


Penso che, una volta rilevato l’HTML, la riga successiva venga elaborata dal processore e successivamente non venga analizzata per il Markdown. Puoi verificarlo inserendo del testo sulla riga dopo il div e all’inizio della riga successiva:

<div>testo in div</div> fine del div
inizio del markdown [un link]( `/admin/email/templates`.) **corsivo**
testo in div
fine del div inizio del markdown [un link]( `/admin/email/templates`.) **corsivo**

Screenshot:

Si tratta di un comportamento completamente specificato e conforme agli standard, definito dalla specifica CommonMark § 4.6 — Blocchi HTML.

La regola fondamentale è il tipo di blocco HTML 6. La specifica CommonMark elenca esplicitamente div (insieme a p, blockquote, table, h1–h6, ul, ol, li, hr, ecc.) come tag a livello di blocco. Quando il parser incontra una riga che inizia con uno di questi tag, apre un blocco HTML con la seguente condizione di chiusura:

Condizione di chiusura: la riga è seguita da una riga vuota.

Gli altri tuoi esempi sono elementi inline e si comportano in modo diverso.

Grazie! Era proprio quello che temevo.

Nel cercare di rendere il mio report semplice, ho dimenticato di menzionare che il problema è sorto quando un utente ha inserito il codice <div data-theme-toc="true"> </div> per aggiungere un indice. Sembra che sia un problema che riguarda lo sviluppatore di quella funzionalità, se mai c’è qualcuno.

Ok, questo è interessante. Quindi non succede affatto senza l’indice? (intendo con altri div)

È la posizione precisa del <div data-theme-toc="true"> </div>. In questo caso era la prima cosa nel post e il testo iniziava sulla riga successiva. Non ce ne saremmo nemmeno accorti se quella prima riga non contenesse markdown. Non sono sicuro che abbia senso.

Se inserisci una riga vuota dopo quel codice, tutto funziona. Quindi Data-theme-toc="true" should be placed at the top of a post in it's own paragraph.