」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在 Laravel 11 中使用輔助函數將 Markdown 轉換為 HTML

在 Laravel 11 中使用輔助函數將 Markdown 轉換為 HTML

發佈於2024-08-01
瀏覽:983

Using Helper Functions to Convert Markdown to HTML in Laravel 11

在本教學中,我們將在 Laravel 應用程式中建立一個輔助函數,以使用 league/commonmark 函式庫將 Markdown 內容轉換為 HTML。我們將介紹建立幫助程式檔案、將其包含在 Laravel 專案中以及在 Blade 範本中使用它的步驟。 Laravel 11 中使用此機制來使函數全域可用。

可選:在控制器中處理 Markdown 轉換

另一種方法是在將資料傳遞到視圖之前在控制器中處理 Markdown 轉換,因此我們不再需要建立幫助程式檔案:

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 步:安裝 league/commonmark

首先,我們透過 Composer 安裝 league/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如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在GO中有效初始化數組,類似於C ++的Memset?
    如何在GO中有效初始化數組,類似於C ++的Memset?
    在go中有等效的memset嗎? 在C中,MEMSET函數允許具有特定值的數組的有效初始化。在GO中,儘管沒有直接等效的詞,但幾種技術可以實現相似的結果。 最簡單的方法是使用循環來設置每個元素對所需值的數組。 = v } } repoyed copy() int,v int){ ...
    程式設計 發佈於2025-02-06
  • 為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    網格超過身體,用100%grid-template-columns 問題:考慮以下CSS和HTML: position:fixed ; grid-template-columns:40%60%; grid-gap:5px; 背景: #eee; 當位置未固定時,網格將正確顯示。但是...
    程式設計 發佈於2025-02-06
  • React中的異步使用效應功能是否需要清理功能?
    React中的異步使用效應功能是否需要清理功能?
    async functions for async functions:導航清理困境在將useeffect hook與async函數中使用時,開發人員可能會遇到以下以下的訪問警告:此警告源於在組件未填充時清理async函數使用的資源的需求。沒有清理功能,在刪除組件後可能會繼續進行長期運行的異步任...
    程式設計 發佈於2025-02-06
  • 如何在Java列表中有效計算元素的發生?
    如何在Java列表中有效計算元素的發生?
    計數列表中的元素出現在列表 中,在java編程中,列舉列表中列舉元素出現的任務來自列表。為此,收集框架提供了全面的工具套件。 在這種情況下,Batocurrences變量將保持值3,代表動物列表中的“ BAT”出現的數量。 &&& [此方法是簡單的,可以得出準確的結果,使其成為計算列表中元素出現的...
    程式設計 發佈於2025-02-06
  • 深副本與淺副本與Java中的克隆:有什麼區別,我什麼時候應該使用?
    深副本與淺副本與Java中的克隆:有什麼區別,我什麼時候應該使用?
    複製值與復制對象在討論複製類型之前,對於區分 copy values 和複製對象: 複製一個值:複製參考類型的值涉及分配對象引用,類似於復制integer。 && && && && &&&華複製一個對象:創建一個具有自己身份的新對象,涉及使用“新”顯式或隱式。對象的深拷貝 淺複製:一個新對象的值與...
    程式設計 發佈於2025-02-06
  • JavaScript的伴侶
    JavaScript的伴侶
    [2 了解JavaScript承諾 承諾是JavaScript中的一個強大功能,可以簡化處理異步操作的處理。它們提供了一種更清潔,更直觀的方式來處理異步代碼,避免了諸如“回調地獄”之類的問題。 什麼是諾言? 是一個代表異步操作的最終完成(或失敗)及其結果值的對象。它使...
    程式設計 發佈於2025-02-06
  • 如何在整個HTML文檔中設計特定元素類型的第一個實例?
    如何在整個HTML文檔中設計特定元素類型的第一個實例?
    [2單獨使用CSS,整個HTML文檔可能是一個挑戰。 the:第一型偽級僅限於與其父元素中類型的第一個元素匹配。 以下CSS將使用添加的類樣式的第一個段落: }
    程式設計 發佈於2025-02-06
  • 如何使用Flexbox將元素與容器的底部對齊?
    如何使用Flexbox將元素與容器的底部對齊?
    在提供的方案中使用FlexBox 在提供的方案中,您有一個帶有各種子元素的div容器。您的目的是實現一個佈局,而元素垂直堆疊,無論文本的高度如何。 flexbox通過自動保證金提供了解決此問題的解決方案。自動利潤率使剩餘空間在對齊之前的元素中分佈到具有自動邊緣的元素。實現所需佈局的一種方法是使用...
    程式設計 發佈於2025-02-06
  • 如何精確測量.NET中的方法執行時間?
    如何精確測量.NET中的方法執行時間?
    .NET方法執行時間的精確計算 引言: 確定方法的執行時間對於性能優化至關重要。有多種方法可以測量此指標,每種方法都有其優點和缺點。 最佳方法:Stopwatch .NET 中的Stopwatch功能專門用於測量執行時間,被認為是最準確和最直接的方法。使用方法如下: var watch = Sy...
    程式設計 發佈於2025-02-06
  • 如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    [2使用內置的char_length()function。 char_length()和length() 此查詢將從指定的表中檢索所有行,並基於上升順序對它們進行排序指定列的字符長度。帶有更長字符串的行將出現在結果的底部。
    程式設計 發佈於2025-02-06
  • 如何使用Python的記錄模塊實現自定義處理?
    如何使用Python的記錄模塊實現自定義處理?
    使用Python的Loggging Module 確保正確處理和登錄對於疑慮和維護的穩定性至關重要Python應用程序。儘管手動捕獲和記錄異常是一種可行的方法,但它可能乏味且容易出錯。 解決此問題,Python允許您覆蓋默認的異常處理機制,並將其重定向為登錄模塊。這提供了一種方便而係統的方法來捕獲...
    程式設計 發佈於2025-02-06
  • 哪種哈希算法最適合PHP中的安全密碼存儲?
    哪種哈希算法最適合PHP中的安全密碼存儲?
    安全密碼存儲:SHA1 vs MD5 VS SHA256 vs bcrypt bcrypt:首選選擇 通過password_hash()函數: //創建哈希 $ hash = password_hash($ password,password_default,['cost'=> ...
    程式設計 發佈於2025-02-06
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-02-06
  • 如何使用shell_exec()從php執行mySQL *.sql文件?
    如何使用shell_exec()從php執行mySQL *.sql文件?
    在PHP 中執行mysql *.sql文件時,在創建網站數據庫時,您可能會遇到需要執行的方案。 SQL文件從PHP到自動化站點生成。雖然zend_framework可能是有益的,但由於SQL語句中的不一致而直接運行。推薦的方法是使用Shell_exec()調用MySQL工具以執行您的 *.sql腳...
    程式設計 發佈於2025-02-06
  • 為什麼C#沒有用於IEnumerable的for Extension方法?
    為什麼C#沒有用於IEnumerable的for Extension方法?
    [2 [2 最近關於C#缺乏擴展方法的擴展方法] 界面? 有趣的是,只有 list 包括此功能。 [2 這是遺漏的性能優化嗎?還是有更深的根本原因? 幾種理論試圖解釋這一明顯的差距。 [2 一個觀點表明,C#的內置 [2 { item.dosomething(); } 這與擴展...
    程式設計 發佈於2025-02-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3