laravel把markdown文本解析为html元素

工具

使用erusev/parsedown扩展包,安装方法

composer require erusev/parsedown

配置

由于,该扩展包并没有针对laravel进行封装。所以,包安装之后,还不能直接使用,需要进行如下的配置才行。

  • composerautoloadclassmap中新增parsedown的地址,由于扩展包都是安装在vendor的目录下的,所以新增的地址为:vendor/erusev/parsedown
    如下配置:
"autoload": {
    "psr-4": {
        "App\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories",
        "vendor/erusev/parsedown"
    ],
    "files":[
        "app/helpers.php"
    ]
},
  • 执行下面的命令,自动加载该扩展
composer dump-auto

引用变量

又有当前的扩展包仅仅是一个单独的类,内部没有使用命名空间,所以使用的时候,只要保证在全局变量里使用就行了。

  1. 通过use使用
use Parsedown;
  1. 或者直接指定全局空间
$parse = new Parsedown;

使用方法

使用类的text方法解析

$html = (new Parsedown)->text($content);

如果是解析用户输入的markdown文本,建议加上setSafeMode(true)用于Parsedown能够转义其生成的HTML中的用户输入,告诉Parsedown它正在处理不受信任的用户输入

$html = (new Parsedown)->setSafeMode(true)->text($content);

更多用法应参考文档

原文地址:https://www.cnblogs.com/hxsen/p/12716273.html