はじめに
Laravelを使ってブログを開発している際に見出しや装飾を本文に反映させてみたいな
と思い、markdown対応させてみました。
至らない点がありますが暖かい目でみてやってください。
使用するmarkdown
Markdown Extraを使用します。
また、ライブラリはcebe\markdownを使用します。
markdown実装
markdownの実装自体は簡単なコードで完了します。
convertMarkdown.php
$converter = new \cebe\markdown\MarkdownExtra();
$String = $converter->parse("# AAA"); // <h1>AAA</h1>
Laravelプロジェクトに組み込む
convertMarkdown.phpで使用したコードをLaravelプロジェクトに組み込みます。
今回はブログでの使用なのでブログの本文が表示される画面で反映させたいので、
記事一覧画面(index.blade.php)と記事詳細画面(show.blade.php)に以下のコードを組み込みます。
index.blade.php&show.blade.php
<div class="body">
@php
$converter = new \cebe\markdown\MarkdownExtra();
$item->contents = $converter->parse($item->contents);
@endphp
{!! $item->contents !!}
</div>
{!! !!}
でHTMLの要素をそのまま表示させています。(Laravel標準のhtmlspecialcharsを解除)
動作確認
記事一覧画面
markdown反映前
markdown反映後
markdown反映後
終わりに
今回はLaravelを使ったブログにmarkdownを反映させる処理を書きました。
view部分にmarkdownの処理を書いたり、共通関数にしなかったりですっきりしたコードではないのですが、ひとまず実現できたのでOKとしています。
この記事に関して何かあればコメントや編集リクエスト投げていただけると幸いです!