Блог Половнёва

Достроить, чтобы обойти

В советах о дебаге я писал, что если не получается поправить баг, можно побороться с его последствиями или заменить решение. Сегодня понял, что есть и третий вариант: достроить и обойти баг.

Ситуация: Commonmark не заворачивает текст в параграф, когда он идёт с одним переводом строки после блочных элементов (заголовки, дивы и прочие). Такой код:

<h1>h1</h1>
wtf

<h1>h1</h1>

wtf???

Даёт такой ХТМЛ (в первом случае параграфа нет, а хотелось бы):

<h1>h1</h1>
wtf

<h1>h1</h1>
<p>wtf???</p>

Если чинить проблему в самом Commonmark дорого и долго, то можно достраивать исходный текст так, чтобы баг не случался. В случае выше достаточно препроцессить исходный текст, добавляя ещё один перевод строки в ситуации с блочным тегом, одним переводом строки и последующим текстом.

Бум! Можно просто достроить исходные данные так, чтобы баг никогда не случался.

P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.