graham-campbell / markdown
Markdown 是 Laravel 的 CommonMark 包装器
Requires
- php: ^7.4.15 || ^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
- 15.2.x-dev
- v15.2.0
- 15.1.x-dev
- v15.1.0
- 15.0.x-dev
- v15.0.0
- 14.0.x-dev
- v14.0.0
- 13.1.x-dev
- v13.1.2
- v13.1.1
- v13.1.0
- v13.0.0
- 12.0.x-dev
- v12.0.2
- v12.0.1
- v12.0.0
- 11.2.x-dev
- v11.2.1
- v11.2.0
- v11.1.0
- v11.0.0
- 10.3.x-dev
- v10.3.1
- v10.3.0
- v10.2.0
- v10.1.0
- v10.0.0
- 9.0.x-dev
- v9.0.0
- 8.1.x-dev
- v8.1.0
- v8.0.0
- 7.1.x-dev
- v7.1.0
- v7.0.0
- 6.1.x-dev
- v6.1.0
- v6.0.1
- v6.0.0
- 5.3.x-dev
- v5.3.0
- v5.2.0
- v5.1.0
- v5.0.0
- v4.0.0
- v3.2.0
- v3.1.1
- v3.1.0
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.0
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-RC1
- v1.1.0
- v1.0.0
- v1.0.0-RC1
- v1.0.0-beta1
- v0.2.0-alpha
- v0.1.0-alpha
This package is auto-updated.
Last update: 2024-09-18 00:18:05 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"
安装完成后,如果您未使用自动包发现,则需要在您的 config/app.php
中注册 GrahamCampbell\Markdown\MarkdownServiceProvider
服务提供者。
您还可以选择性地为我们的外观设置别名
'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/。
安全性
如果您在此包中发现安全漏洞,请发送电子邮件至[email protected]。所有安全漏洞都将得到及时处理。您可以在此处查看我们的完整安全策略here。
许可
Laravel Markdown遵循MIT 许可证 (MIT)。
企业版
作为Tidelift订阅的一部分提供
graham-campbell/markdown
的维护者以及数千个其他包的维护者正在与Tidelift合作,为您提供的用于构建应用程序的开源依赖项提供商业支持和维护。节省时间,降低风险,提高代码质量,同时支付您确切使用的依赖项的维护者。了解更多信息:Learn more.