PHPでMarkdownをHTMLに変換するparsedownを試した
Markdownをパースするライブラリを調べたところparsedownが良い感じだったのでメモ。 文中のPHPは7.2を使用。
準備
composerでインストール。
$ composer require erusev/parsedown
実際に変換してみる
<?php require_once "./vendor/autoload.php"; $Parsedown = new Parsedown(); // safeModeをtrueにしておくとエスケープしてくれる。 $Parsedown->setSafeMode(true); $md = <<<EOF # 見出し1 parsedownのサンプルです。 parsedownのサンプルです。 parsedownのサンプルです。 * 箇条書き * 箇条書き *太文字* |題名|題名|題名| |:---|:---:|---:| |左寄せ|中央寄せ|右寄せ| <script> alert('hoge'); </script> EOF; // 出力 echo $Parsedown->text($md);
上記の例だと、以下のようなhtmlが出力される。
<h1>見出し1</h1> <p>parsedownのサンプルです。<br /> parsedownのサンプルです。<br /> parsedownのサンプルです。</p> <ul> <li>箇条書き</li> <li>箇条書き</li> </ul> <p><em>太文字</em></p> <table> <thead> <tr> <th style="text-align: left;">題名</th> <th style="text-align: center;">題名</th> <th style="text-align: right;">題名</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">左寄せ</td> <td style="text-align: center;">中央寄せ</td> <td style="text-align: right;">右寄せ</td> </tr> </tbody> </table> <p><script> alert('hoge'); </script></p>
ブラウザでも確認。
簡単にMarkdown->htmlの変換に対応することができた。
参考文献
本家(デモ有)
Better Markdown Parser in PHP
Github
GitHub - erusev/parsedown: Better Markdown Parser in PHP