Laravel12 標準機能だけでマークダウンを表示する方法

Laravel12 標準機能だけでマークダウンを表示する方法

以前は外部のライブラリ(Parsedownなど)を導入するのが一般的でしたが、Laravel(9以降)なら標準搭載されているヘルパー関数だけで実装できます。

コントローラーで以下のように記述するだけで、マークダウンを安全なHTMLに変換できます。

use Illuminate\Support\Str;

$html = Str::markdown('# こんにちは'); 

サンプルコード

■Controller側

namespace App\Http\Controllers;

use Illuminate\Support\Str;

class MarkdownController extends Controller
{
    public function show()
    {
        // マークダウンを定義
        $markdown = <<<'MARKDOWN'
        # マークダウン表示テスト
        
        標準機能だけで**太字**や[リンク](https://xxxx.com)が使えます。
        
        - AAA
        - BBB
        - CCC
        MARKDOWN;

        // HTMLに変換
        $html = Str::markdown($markdown);

        return view('markdown.show', compact('html'));
    }
}

■Blade側

{!! !!}でエスケープを無効にして表示すればOK。
<div class="markdown-container">
    {{-- HTMLタグを有効にして出力 --}}
    {!! $html !!}
</div>

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です