Laravel 在 5.4 版本中天然包含了將 Markdown 語法轉換成 HTML 的工具包 erusev/parsedown
。
它主要的方法有兩個:text
和 setMarkupEscaped
。使用方式如下:
echo Parsedown::instance()
->setMarkupEscaped(true)
->text("<div><strong>*Some text*</strong></div>");
# 輸出:
# <p><div><strong><em>Some text</em></strong></div></p>
text
指定要轉換的 Markdown 文字;setMarkupEscaped
設定為 true
表示轉義文字里的 HTML 標籤,比如把 <
轉換為 <
,以 避免外部指令碼攻擊。
它在 Laravel 的 Blade 模板檔案裡是這樣使用的:
{!! Parsedown::instance()->setMarkupEscaped(true)->text($discussion->body) !!}
下面舉兩個例子:
- 當我轉義的文字是
<script> console.log('Oops!'); </script>
的時候,被解析為
<p><p><script> console.log('Oops!');</script></p></p>
- 當我轉義的文字是
```<script> console.log('Oops!'); </script>```
的時候,被解析為
<p><code><script> console.log('Oops!'); </script></code></p>
更多使用細節,可以查閱這裡的 教程。
本作品採用《CC 協議》,轉載必須註明作者和本文連結