Markdown方言
Markdownの方言は
 Markdown
 CommonMark
 Github flavored Markdown
 Markdown Extra
だいたいこの4つから選ぶことになると思います。
CommonMark
- Markdown系のスタンダード(になるかもしれない)
 - 現在も仕様策定中で2017年内にv1.0.0がリリース予定
 - 公式のPHPの実装がある
 
Markdown
- 本来の「Markdown」といった場合はこのMarkdown
 - 機能は少ない
 - 実装はいくつかある
 
Github flavored Markdown
- Githubで利用できるMarkdown
 - URLの自動リンクやテーブルが利用可能
 - 行末にスペース2つを入れずに、改行するだけで
<br>が生成されるのが特徴 - PHPでの実装は単独では見つからない
 
Markdown Extra
- テーブルに加え定義リスト(まさにこのリストの部分)が利用可能
 - 多機能で実装も多い
 - PHPで実装されている
 
ライブラリ
今回はcebe/markdownを選びました。
cebe/markdownの特徴はMarkdown・Github flavored Markdown・Markdown Extraの3つが利用可能ですが、Markdown Extraについては定義リストなど実装されていない文法があるようです。
ただし、拡張が簡単なので、今回はこれを利用します。
実装
まずはcomposerでインストールします。
composer require cebe/markdown
下記のコードで簡単にHTMLに変換することができます。
$markdown_string = '# Hello, Markdown';
$converter = new \cebe\markdown\MarkdownExtra();
echo $converter->parse($markdown_string);
<h1># Hello, Markdown</h1>
ただ、Markdown Extraは改行のみだと<br>が生成されず、行末にスペースを2つ入れる必要があるので、拡張してみましょう。
class MyMarkdown extends \cebe\markdown\MarkdownExtra{
	//同ライブラリのGithub flavored用の実装と同一
	protected function renderText($text){
		if ($this->enableNewlines) {
			$br = $this->html5 ? "<br>\n" : "<br />\n";
			return strtr($text[1], ["  \n" => $br, "\n" => $br]);
		} else {
			return parent::renderText($text);
		}
	}
}
$markdown_string = '# Hello, Markdown';
$converter = new MyMarkdown();
echo $converter->parse($markdown_string);
簡単ですね。これをうまく利用するとWordPressでも実装することができます。
WordPressへの組み込みはまたいずれ…。