Достроить, чтобы обойти
В советах о дебаге я писал, что если не получается поправить баг, можно побороться с его последствиями или заменить решение. Сегодня понял, что есть и третий вариант: достроить и обойти баг.
Ситуация: Commonmark не заворачивает текст в параграф, когда он идёт с одним переводом строки после блочных элементов (заголовки, дивы и прочие). Такой код:
<h1>h1</h1>
wtf
<h1>h1</h1>
wtf???
Даёт такой ХТМЛ (в первом случае параграфа нет, а хотелось бы):
<h1>h1</h1>
wtf
<h1>h1</h1>
<p>wtf???</p>
Если чинить проблему в самом Commonmark дорого и долго, то можно достраивать исходный текст так, чтобы баг не случался. В случае выше достаточно препроцессить исходный текст, добавляя ещё один перевод строки в ситуации с блочным тегом, одним переводом строки и последующим текстом.
Бум! Можно просто достроить исходные данные так, чтобы баг никогда не случался.
P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.