Текст, который появляется на строке непосредственно после тега div, отображается неправильно. Добавление пустой строки после строки с div решает эту проблему.
Моя догадка заключается в том, что как только обнаруживается HTML, следующая строка захватывается процессором и впоследствии не парсится как Markdown. Вы можете проверить это, поместив текст на строку после div и в начале следующей строки:
<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**
Ключевое правило — HTML-блок типа 6. В спецификации CommonMark тег div (наряду с p, blockquote, table, h1–h6, ul, ol, li, hr и др.) явно указан как блочный тег. Когда парсер встречает строку, начинающуюся с одного из этих тегов, он открывает HTML-блок с следующим условием завершения:
Условие завершения: за строкой следует пустая строка.
Ваши другие примеры относятся к строчным элементам и ведут себя иначе.
Стремясь сделать мой отчёт простым, я забыл упомянуть, что проблема возникла, когда пользователь вставил код <div data-theme-toc="true"> </div> для добавления оглавления. Похоже, это проблема для разработчика этой функции, если кто-то и виноват.
Речь идет о точном позиционировании <div data-theme-toc="true"> </div>. В данном случае это был первый элемент в сообщении, а текст начинался со следующей строки. Мы бы даже не заметили этого, если бы первая строка не содержала разметку Markdown. Не уверен, что это логично.