alanchang15 / markdown
Markdown 是 Laravel 的 CommonMark 包装器
Requires
- php: ^7.2.5 || ^8.0
- illuminate/contracts: ^6.0 || ^7.0 || ^8.0
- illuminate/filesystem: ^6.0 || ^7.0 || ^8.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0
- illuminate/view: ^6.0 || ^7.0 || ^8.0
- league/commonmark: ^1.5
Requires (Dev)
- graham-campbell/analyzer: ^3.0
- graham-campbell/testbench: ^5.6
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.5.8 || ^9.3.7
- 14.0.x-dev
- 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-09 15:41:46 UTC
README
Laravel Markdown 由 Graham Campbell 创建并维护,是 Laravel 的 CommonMark 包装器,同时也提供了与 Laravel 视图系统的集成。您可以自由查看变更日志、发布、安全策略、许可、行为准则和贡献指南。
安装
Laravel Markdown 需要 PHP 7.2-8.1。这个版本支持 Laravel 6-8。
要获取最新版本,请使用 Composer 引入项目。
$ composer require graham-campbell/markdown:^13.1
安装完成后,如果您没有使用自动包发现,则需要将 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 注册。此设置的默认值为 []
。
渲染器配置
此选项('renderer'
)指定用于渲染 HTML 的选项数组。此设置的默认值为 ['block_separator' => "\n", 'inner_separator' => "\n", 'soft_break' => "\n"]
。
启用 Em 标签解析
此选项('enable_em'
)指定是否启用 <em>
解析。此设置的默认值为 true
。
启用 Strong 标签解析
此选项('enable_strong'
)指定是否启用 <strong>
解析。此设置的默认值为 true
。
启用星号解析
此选项('use_asterisk'
)指定是否解析 *
以实现强调。此设置的默认值为 true
。
启用下划线解析
此选项('use_underscore'
)指定是否解析 _
以实现强调。此设置的默认值为 true
。
HTML 输入
此选项('html_input'
)指定如何处理不受信任的HTML输入。此设置的默认值是'strip'
。
允许不安全链接
此选项('allow_unsafe_links'
)指定是否允许有风险图像URL和链接。此设置的默认值是true
。
最大嵌套级别
此选项('max_nesting_level'
)指定允许的最大块嵌套级别。此设置的默认值是INF
。
用法
Facades\Markdown
此外观会将静态方法调用动态地传递到ioc容器中的'markdown'
对象,默认情况下是League\CommonMark\MarkdownConverterInterface
的一个实例。
MarkdownServiceProvider
此类不包含任何感兴趣的公共方法。应在config/app.php
中的提供者数组中添加此类。此类将设置ioc绑定。
实际示例
在这里,您可以看到这个包如何简单易用。
use GrahamCampbell\Markdown\Facades\Markdown; Markdown::convertToHtml('foo'); // <p>foo</p>
如果您像我一样喜欢使用依赖注入而不是外观,则可以轻松地按如下方式注入此类
use Illuminate\Support\Facades\App; use League\CommonMark\MarkdownConverterInterface; class Foo { protected $converter; public function __construct(MarkdownConverterInterface $converter) { $this->converter = $converter; } public function bar() { return $this->converter->convertToHtml('foo'); } } App::make('Foo')->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文档的自定义部分有一些很好的示例,说明如何创建自定义解析器和渲染器:[链接](http://commonmark.thephpleague.com/)。
Smart Punctuation包也是一个很好的示例,说明如何实现完整的功能:[链接](https://github.com/thephpleague/commonmark-ext-smartpunct)。特别是请注意扩展类的存在,以及您可以在app/config/markdown.php
文件中的扩展数组中添加它的事实。如果您在配置文件夹中没有看到此文件,您需要运行php artisan vendor:publish
。
安全
如果您在此包中发现安全漏洞,请发送电子邮件到security@tidelift.com。所有安全漏洞都将得到及时解决。您可以在这里查看我们的完整安全策略:[链接](https://github.com/GrahamCampbell/Laravel-Markdown/security/policy)
许可证
Laravel Markdown是在MIT许可证(MIT)下授权的。
企业版
作为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)