graham-campbell/markdown
Composer 安装命令:
composer require graham-campbell/markdown
包简介
Markdown Is A CommonMark Wrapper For Laravel
关键字:
README 文档
README
Laravel Markdown was created by, and is maintained by Graham Campbell, and is a CommonMark wrapper for Laravel. It ships with integration with Laravel's view system too. Feel free to check out the change log, releases, security policy, license, code of conduct, and contribution guidelines.
Installation
This version requires PHP 8.1-8.5 and supports Laravel 10-13.
| Markdown | L5.5 | L5.6 | L5.7 | L5.8 | L6 | L7 | L8 | L9 | L10 | L11 | L12 | L13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10.3 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 11.2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 12.0 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 13.1 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 14.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| 15.3 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| 16.1 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
To get the latest version, simply require the project using Composer:
$ composer require "graham-campbell/markdown:^16.1"
Once installed, if you are not using automatic package discovery, then you need to register the GrahamCampbell\Markdown\MarkdownServiceProvider service provider in your config/app.php.
You can also optionally alias our facade:
'Markdown' => GrahamCampbell\Markdown\Facades\Markdown::class,
Configuration
Laravel Markdown supports optional configuration.
To get started, you'll need to publish all vendor assets:
$ php artisan vendor:publish
This will create a config/markdown.php file in your app that you can modify to set your configuration. Also, make sure you check for changes to the original config file in this package between releases.
There are several config options:
Enable View Integration
This option ('views') specifies if the view integration is enabled so you can write markdown views and have them rendered as html. The following extensions are currently supported: '.md', '.md.php', and '.md.blade.php'. Additionally, this will enable the @markdown Blade directive. You may disable this integration if it is conflicting with another package. The default value for this setting is true.
CommonMark Extensions
This option ('extensions') specifies what extensions will be automatically enabled. Simply provide your extension class names here, and they will be resolved from the service container, and registered with CommonMark. The default value for this setting is [League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension::class, League\CommonMark\Extension\Table\TableExtension::class].
Renderer Configuration
This option ('renderer') specifies an array of options for rendering HTML. The default value for this setting is ['block_separator' => "\n", 'inner_separator' => "\n", 'soft_break' => "\n"].
CommonMark Configuration
This option ('commonmark') specifies an array of options for commonmark. The default value for this setting is ['enable_em' => true, 'enable_strong' => true, 'use_asterisk' => true, 'use_underscore' => true, 'unordered_list_markers' => ['-', '+', '*']].
HTML Input
This option ('html_input') specifies how to handle untrusted HTML input. The default value for this setting is 'strip'.
Allow Unsafe Links
This option ('allow_unsafe_links') specifies whether to allow risky image URLs and links. The default value for this setting is true.
Maximum Nesting Level
This option ('max_nesting_level') specifies the maximum permitted block nesting level. The default value for this setting is PHP_INT_MAX.
Slug Normalizer
This option ('slug_normalizer') specifies an array of options for slug normalization. The default value for this setting is ['max_length' => 255, 'unique' => 'document'].
Usage
Facades\Markdown
This facade will dynamically pass static method calls to the 'markdown.converter' object in the ioc container which by default is an instance of League\CommonMark\ConverterInterface.
MarkdownServiceProvider
This class contains no public methods of interest. This class should be added to the providers array in config/app.php. This class will setup ioc bindings.
Real Examples
Here you can see an example of just how simple this package is to use.
use GrahamCampbell\Markdown\Facades\Markdown; Markdown::convert('foo')->getContent(); // <p>foo</p>
If you prefer to use dependency injection over facades like me, then you can easily inject the class like so:
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();
And don't forget, that's just the basics. We also support extension through listening for the resolving event from the container, and we ship with integration with Laravel's view system. You can use both the @markdown blade directive, and also using the following file extensions will compile your views as markdown: '.md', '.md.php', and '.md.blade.php'.
For example, the following are all methods of rendering 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
Further Information
There are other classes in this package that are not documented here (such as the engine and compiler classes). This is because they are not intended for public use and are used internally by this package.
Extensions
As hinted in the configuration docs, CommonMark can be modified using extensions. There are some very good examples in the customization section of the CommonMark docs for how to create custom parsers and renders in the customization section: https://commonmark.thephpleague.com/.
Security
If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. You may view our full security policy here.
License
Laravel Markdown is licensed under The MIT License (MIT).
For Enterprise
Available as part of the Tidelift Subscription
The maintainers of graham-campbell/markdown and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.
graham-campbell/markdown 适用场景与选型建议
graham-campbell/markdown 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.54M 次下载、GitHub Stars 达 1.34k, 最近一次更新时间为 2013 年 12 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「markdown」 「laravel」 「Graham Campbell」 「GrahamCampbell」 「Laravel Markdown」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 graham-campbell/markdown 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 graham-campbell/markdown 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 graham-campbell/markdown 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
Texy converts plain text in easy to read Texy syntax into structurally valid (X)HTML. It supports adding of images, links, nested lists, tables and has full support for CSS. Texy supports hyphenation of long words (which reflects language rules), clickable emails and URL (emails are obfuscated again
Adds more BBCode
Creates a markdown changelog for your GitHub repository.
Lightweight Application To Convert WordPress Readme Into Github Markdown
Alfabank REST API integration
统计信息
- 总下载量: 7.54M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1363
- 点击次数: 35
- 依赖项目数: 77
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2013-12-10
