alfredo-ramos/parsedown-extra-laravel

Laravel和Lumen的Parsedown Extra包

5.0.0 2023-04-02 02:50 UTC

README

关于

一个Parsedown Extra包,用于Laravel和Lumen。

HTML Purifier也被用于过滤HTML输出,以保护您的应用程序免受不安全内容的影响。此外,HTML5 Definitions for HTML Purifier用于添加HTML5的新定义和清理。

Build Status Latest Stable Version Code Quality License

兼容性

安装

打开您的composer.json文件,并将包添加到require对象中

"alfredo-ramos/parsedown-extra-laravel": "^5.0.0"

然后在您的终端上运行composer update

Laravel

自Laravel 5.5.x以来,服务提供者和别名将自动注册,这要归功于新的包自动发现。

Lumen

在您的bootstrap\app.php文件中注册服务提供者

$app->register(AlfredoRamos\ParsedownExtra\ParsedownExtraServiceProvider::class);

然后注册外观别名

$app->withFacades(true, [
	AlfredoRamos\ParsedownExtra\Facades\ParsedownExtra::class => 'Markdown'
]);

用法

Markdown::parse()方法负责将Markdown语法转换为HTML,其签名如下

Markdown::parse(string $text = '', array $config = [])

注意

  • 如果$config是一个字符串,它将被视为[purifier][settings]数组中的数组键。
  • 如果$config是一个数组,它将扩展HTML Purifier的默认配置。
  • $config的空值意味着它将使用HTML Purifier的默认值,有关更多信息,请参阅\AlfredoRamos\ParsedownExtra\HTMLPurifierLaravel::getConfig()

使用$config作为字符串

Markdown::parse('Hello world', ['config' => 'comments'])

其中comments是数组settings的键。

return [
	'purifier'	=> [
		'enabled'	=> true,
		'settings'	=> [
			'default' => [...],
			'comments' => [...]
		]
	]
];

使用$config作为数组

Markdown::parse('[DuckDuckGo](https://duckduckgo.com/)', ['config' => [
	'URI.Host' => 'localhost',
	'URI.DisableExternal' => true
]])

有关所有配置选项,请参阅官方的HTML Purifier配置文档

使用默认设置

Markdown::parse('Hello world!')
// Is the same as
Markdown::parse('Hello world!', ['config' => 'default'])

Blade

可以通过Markdown外观在Blade中使用

{!! Markdown::parse("Hello world") !!}
{!! Markdown::parse("[XSS link](javascript:alert('xss'))") !!}

上面的代码将打印

<p>Hello world</p>

<!-- HTML Purifier enabled -->
<p><a>XSS link</a></p>

<!-- HTML Purifier disabled -->
<p><a href="javascript:alert('xss')">XSS link</a></p>

辅助函数

为了您的方便,还提供了接受与外观相同参数的markdown()辅助函数。

markdown('Hello world', ['purifier' => false])

配置

要添加新选项或编辑默认选项,请运行以下命令以复制默认配置文件

php artisan vendor:publish \
	--provider='AlfredoRamos\ParsedownExtra\ParsedownExtraServiceProvider' \
	--tag=config --force