BoothCMSではMarkdownのパーサーにcebe/markdownを採用していましたが、本ブログの移行作業の過程で空要素を含む HTML フラグメントの解析に問題を確認しました。確認したのはバージョン 1.2.1 です。

問題になるのは、たとえばこんな感じ(マークアップは現象確認用に編集したものです)。

<div class="center youtube-container">
<iframe>
<img src="https://i.ytimg.com/vi/uacjJ4_dwrE/sddefault.jpg" alt="Rise to" />
</iframe>
</div>

変換することこんなふうに余計な p 要素が入ってしまいます。

<div class="center youtube-container">
<iframe>
<img src="https://i.ytimg.com/vi/uacjJ4_dwrE/sddefault.jpg" alt="Rise to" />
<p></iframe>
</div></p>

空要素単体だと問題ないので、深い階層の取りあつかいに難がある模様。要素の解析をきちんとやっていないのかもしれません(正規表現でタグを取りあつかったときなどにありがち)。

個人的に非常にこまる現象なので、ライブラリをParsedownに差し替えました。テンプレートの編集もまだ残っているし、さていつになったら移行できるのでしょうか……

公開: / 最終更新日: