「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel 11 でヘルパー関数を使用してマークダウンを HTML に変換する

Laravel 11 でヘルパー関数を使用してマークダウンを HTML に変換する

2024 年 8 月 1 日に公開
ブラウズ:749

Using Helper Functions to Convert Markdown to HTML in Laravel 11

このチュートリアルでは、Laravel アプリケーションでヘルパー関数を作成し、league/commonmark ライブラリを使用して Markdown コンテンツを HTML に変換します。ヘルパー ファイルを作成し、それを Laravel プロジェクトに組み込み、Blade テンプレートで使用する手順について説明します。このメカニズムは、関数をグローバルに利用できるようにするために Laravel 11 で使用されています。

オプション: コントローラーでのマークダウン変換の処理

別の方法は、データをビューに渡す前にコントローラーでマークダウン変換を処理することです。そのため、ヘルパー ファイルを作成する必要がなくなりました。

use League\CommonMark\CommonMarkConverter;

public function show($id)
{
    $course = Course::find($id);
    $converter = new CommonMarkConverter();

    $post->description = $converter->convertToHtml($post->description);

    return view('post.show', compact('post'));
}

ブレード テンプレートで変換機能を使用できるようにするためのヘルパー ファイルの作成

ステップ 1: リーグ/コモンマークをインストールする

まず、Composer 経由でリーグ/commonmark ライブラリをインストールします:

composer require league/commonmark

ステップ 2: helpers.php ファイルを作成する

次に、ヘルパー関数を定義するための helpers.php ファイルを作成します。このファイルは、アプリ ディレクトリまたはその他の任意の場所に配置できます。

touch app/helpers.php

app/helpers.php を開き、次のコンテンツを追加します:

convertToHtml($markdown);
    }
}

ステップ 3: Composer にヘルパー ファイルを含める

Laravel が helpers.php ファイルを自動的にロードできるようにするには、composer.json ファイルを変更して autoload セクションに helpers.php へのパスを追加する必要があります。

"autoload": {
    "files": [
        "app/helpers.php"
    ]
}

ステップ 4: Composer 自動ロード ファイルを再生成する

composer.json を変更した後、次を実行して Composer 自動ロード ファイルを再生成します:

composer dump-autoload

ステップ 5: ブレード テンプレートでヘルパー関数を使用する

ヘルパー関数を定義してロードしたので、それを Blade テンプレートで使用して Markdown を HTML に変換できるようになりました:

{!! markdownToHtml($post->description) !!}

このチュートリアルは、ブレード テンプレートでカスタム関数を使用できるようにする方法を示すために提供されています。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/websilvercraft/using-helper-functions-to-convert-markdown-to-html-in-laravel-11-30a?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3