Text, der in einer Zeile direkt nach einem div-Tag erscheint, wird nicht korrekt gerendert. Das Einfügen einer Leerzeile nach der Zeile mit dem div löst das Problem.
Meine Vermutung ist, dass, sobald HTML erkannt wird, die folgende Zeile sowohl in den Prozessor aufgenommen als auch anschließend nicht für Markdown geparst wird. Du kannst dies testen, indem du etwas Text in die Zeile nach dem div und am Anfang der nächsten Zeile einfügst:
<div>divved text</div> end of div
beginning of markdown [a link]( `/admin/email/templates`.) **italic**
divved text
end of div
beginning of markdown [a link]( `/admin/email/templates`.) **italic**
Die entscheidende Regel ist HTML-Blocktyp 6. Die CommonMark-Spezifikation listet div (zusammen mit p, blockquote, table, h1–h6, ul, ol, li, hr usw.) explizit als Block-Element auf. Wenn der Parser eine Zeile erkennt, die mit einem dieser Tags beginnt, öffnet er einen HTML-Block mit folgender Endbedingung:
Endbedingung: Die Zeile wird durch eine leere Zeile abgeschlossen.
Deine anderen Beispiele sind Inline-Elemente und verhalten sich anders.
Um meinen Bericht einfach zu halten, habe ich vergessen zu erwähnen, dass das Problem auftrat, als ein Benutzer den Code <div data-theme-toc="true"> </div> eingefügt hat, um ein Inhaltsverzeichnis einzufügen. Es scheint, als wäre dies ein Problem für den Entwickler dieser Funktion, falls es überhaupt jemanden betrifft.
Es kommt auf die genaue Platzierung des <div data-theme-toc="true"> </div> an. In diesem Fall stand es als erstes Element im Beitrag, und der Text begann in der nächsten Zeile. Wir hätten das wahrscheinlich nicht einmal bemerkt, wenn diese erste Zeile kein Markdown enthalten hätte. Ich bin mir nicht sicher, ob das Sinn ergibt.