Dalam tutorial ini, kami akan mencipta fungsi pembantu dalam aplikasi Laravel untuk menukar kandungan Markdown kepada HTML menggunakan perpustakaan liga/commonmark. Kami akan merangkumi langkah-langkah untuk membuat fail pembantu, memasukkannya ke dalam projek Laravel kami dan menggunakannya dalam templat Blade. Mekanisme ini digunakan dalam Laravel 11 untuk menjadikan fungsi tersedia secara global.
Alternatifnya ialah mengendalikan penukaran Markdown dalam pengawal sebelum menghantar data ke paparan, jadi kami tidak perlu lagi mencipta fail pembantu:
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')); }
Pertama, kami memasang perpustakaan liga/commonmark melalui Komposer:
composer require league/commonmark
Seterusnya, kami akan mencipta fail helpers.php untuk mentakrifkan fungsi helper kami. Fail ini boleh diletakkan dalam direktori apl atau mana-mana lokasi pilihan lain.
touch app/helpers.php
Buka app/helpers.php dan tambah kandungan berikut:
<?php use League\CommonMark\CommonMarkConverter; if (! function_exists('markdownToHtml')) { function markdownToHtml($markdown) { $converter = new CommonMarkConverter(); return $converter->convertToHtml($markdown); } }
Untuk memastikan Laravel memuatkan fail helpers.php secara automatik, kami perlu mengubah suai fail composer.json untuk menambah laluan ke helpers.php di bawah bahagian autoload:
"autoload": { "files": [ "app/helpers.php" ] }
Selepas mengubah suai composer.json, jana semula fail autoload Composer dengan menjalankan:
composer dump-autoload
Dengan fungsi pembantu yang ditakrifkan dan dimuatkan, kami kini boleh menggunakannya dalam templat Blade untuk menukar Markdown kepada HTML:
<div> {!! markdownToHtml($post->description) !!} </div>
Tutorial ini disediakan untuk menunjukkan cara kami boleh menyediakan fungsi tersuai dalam templat bilah.
Atas ialah kandungan terperinci Menggunakan Fungsi Pembantu untuk Menukar Markdown kepada HTML dalam Laravel 11. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!