hanssn / markdown
Markdown 是 Laravel 的 CommonMark 包装器
Requires
- php: ^7.4.15 || 7.4.3 || ^8.0.2
- illuminate/contracts: ^8.75 || ^9.0 || ^10.0 || ^11.0
- illuminate/filesystem: ^8.75 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^8.75 || ^9.0 || ^10.0 || ^11.0
- illuminate/view: ^8.75 || ^9.0 || ^10.0 || ^11.0
- league/commonmark: ^2.4.2
Requires (Dev)
- graham-campbell/analyzer: ^4.1
- graham-campbell/testbench: ^6.1
- mockery/mockery: ^1.6.6
- phpunit/phpunit: ^9.6.17 || ^10.5.13
This package is auto-updated.
Last update: 2024-10-02 08:25:32 UTC
README
Laravel Markdown 由 Graham Campbell 创建并维护,是 Laravel 的 CommonMark 包装器。它还提供了与 Laravel 视图系统的集成。您可以查看变更日志、版本发布、安全策略、许可证、行为准则和贡献指南。
安装
此版本需要 PHP 7.4-8.3 并支持 Laravel 8-11。
要获取最新版本,请使用 Composer 需求项目。
$ composer require "graham-campbell/markdown:^15.2"
安装完成后,如果您没有使用自动包发现,则需要将 GrahamCampbell\Markdown\MarkdownServiceProvider
服务提供者注册到您的 config/app.php
中。
您还可以选择性地为我们的外观别名
'Markdown' => GrahamCampbell\Markdown\Facades\Markdown::class,
配置
Laravel Markdown 支持可选配置。
要开始使用,您需要发布所有供应商资产
$ php artisan vendor:publish
这将为您在应用中创建一个 config/markdown.php
文件,您可以修改它来设置您的配置。同时,请确保检查此包中原始配置文件在版本之间的更改。
有几个配置选项
启用视图集成
此选项('views'
)指定是否启用视图集成,以便您可以使用 markdown 视图并将它们渲染为 html。目前支持以下扩展:'.md'
、'.md.php'
和 '.md.blade.php'
。此外,这将启用 @markdown
Blade 指令。如果您与其他包冲突,可以禁用此集成。此设置的默认值为 true
。
CommonMark 扩展
此选项('extensions'
)指定将自动启用哪些扩展。只需在此处提供您的扩展类名,然后它们将从服务容器中解析,并在 CommonMark 中注册。此设置的默认值为 [League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension::class, League\CommonMark\Extension\Table\TableExtension::class]
。
渲染器配置
此选项('renderer'
)指定用于渲染 HTML 的选项数组。此设置的默认值为 ['block_separator' => "\n", 'inner_separator' => "\n", 'soft_break' => "\n"]
。
CommonMark 配置
此选项('commonmark'
)指定用于 commonmark 的选项数组。此设置的默认值为 ['enable_em' => true, 'enable_strong' => true, 'use_asterisk' => true, 'use_underscore' => true, 'unordered_list_markers' => ['-', '+', '*']]
。
HTML 输入
此选项('html_input'
)指定如何处理不受信任的 HTML 输入。此设置的默认值为 'strip'
。
允许不安全链接
此选项(《allow_unsafe_links》)指定是否允许风险图片URL和链接。此设置的默认值是《true》。
最大嵌套级别
此选项(《max_nesting_level》)指定允许的最大块嵌套级别。此设置的默认值是《PHP_INT_MAX》。
短标题规范化器
此选项(《slug_normalizer》)指定短标题规范化的选项数组。此设置的默认值是《['max_length' => 255, 'unique' => 'document']》。
用法
Facades\Markdown
此外观将动态地将静态方法调用传递给ioc容器中的《'markdown.converter'》对象,默认情况下是《League\CommonMark\ConverterInterface》的一个实例。
MarkdownServiceProvider
此类不包含感兴趣的公共方法。应在《config/app.php》中的提供者数组中添加此类。此类将设置ioc绑定。
真实示例
在这里,您可以看到一个示例,说明此包使用有多么简单。
use GrahamCampbell\Markdown\Facades\Markdown; Markdown::convert('foo')->getContent(); // <p>foo</p>
如果您像我一样更喜欢使用依赖注入而不是外观,则可以轻松地按如下方式注入类
use League\CommonMark\ConverterInterface; class Foo { private ConverterInterface $converter; public function __construct(ConverterInterface $converter) { $this->converter = $converter; } public function bar(): string { return $this->converter->convert('foo')->getContent(); } } app(Foo::class)->bar();
别忘了,这仅仅是基础。我们还支持通过监听容器中的解析事件来扩展,并且我们提供了与Laravel视图系统的集成。您可以使用《@markdown》blade指令,也可以使用以下文件扩展名将视图编译为markdown:`.md`,`.md.php`,和`.md.blade.php`。
例如,以下都是渲染markdown的方法
foo.blade.php
:
@markdown('# Foo')
bar.blade.php
:
@markdown # Bar @endmarkdown
baz1.md
:
# Baz 1
baz2.md.php
:
# Baz 2
baz3.md.blade.php
:
# Baz 3
更多信息
此包中还有一些未在此文档中记录的类(例如引擎和编译器类)。这是因为它们不是供公共使用的,而是由此包内部使用的。
扩展
如配置文档中所暗示,CommonMark可以通过扩展进行修改。CommonMark文档的定制部分有一些很好的示例,说明如何创建自定义解析器和渲染器:[链接](https://commonmark.thephpleague.com/)。
安全
如果您在此包中发现安全漏洞,请发送电子邮件至security@tidelift.com。我们将及时处理所有安全漏洞。您可以在此处查看我们的完整安全策略:[链接](https://github.com/GrahamCampbell/Laravel-Markdown/security/policy)。
许可协议
Laravel Markdown遵循《MIT许可协议》(MIT License)。
企业版
作为Tidelift订阅的一部分提供
graham-campbell/markdown
的维护者以及数千个其他包的维护者正在与Tidelift合作,为您使用来构建应用程序的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码健康,同时支付您使用的确切依赖项的维护者。了解更多信息:[链接](https://tidelift.com/subscription/pkg/packagist-graham-campbell-markdown?utm_source=packagist-graham-campbell-markdown&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)。