olliecodes / laravel-etched-blade
一个使用 Blade 模板解析和将 Markdown 转换为 HTML 的 Laravel 扩展包
1.0.4
2021-07-01 14:21 UTC
Requires
- php: ^7.3|^8.0
- illuminate/view: ^8.0
- league/commonmark: ^1.6
- webuni/front-matter: ^1.2
Requires (Dev)
- marcocesarato/php-conventional-changelog: ^1.10
- orchestra/testbench: ^6.17
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-08-29 05:50:00 UTC
README
安装
通过 composer 安装。
$ composer require olliecodes/laravel-etched-blade
安装后,您可能需要发布配置。
$ php artisan vendor:publish --provider="OllieCodes\Etched\EtchedServiceProvider" --tag=config
如果您想修改默认主题,也可以发布这些主题。
$ php artisan vendor:publish --provider="OllieCodes\Etched\EtchedServiceProvider" --tag=views
要求
此扩展包需要以下内容;
- PHP >= 7.3(包括 8)。
illuminate/view
>= 8.0 < 9.0 - 来自 Laravel 的视图组件。league/commonmark
>= 1.6 < 2.0 - 用于解析 Markdown 的 PHP league commonmark 库。webuni/front-matter
>= 1.2 < 2.0 - 前置解析器。
使用方法
要在 blade 文件中渲染 Markdown,您可以直接在行内进行;
@etched # I am a heading This is some content - I am a list - So am I but more - I'm the same - I'm less than those two @endetched
或者包含一个 Markdown 文件(.md
)。
@include('markdown.content.article-1')
上面的引用了文件 markdown/content/article-1.md
,该文件将像 blade 文件一样被渲染。
主题
您可以通过多种方式控制用于渲染 Markdown 的主题。
在指令的参数中提供。
@etched('simple') ... @endetched
在包含时作为参数。
@include('markdown-file', ['theme' => 'simple'])
或在 Markdown 的前置部分。
--- theme: simple --- I am some content
如果没有提供主题,则使用 etched.defaults.theme
的值。如果提供了多个,则前置部分的值将优先。
高级
所有 Markdown 渲染都由 OllieCodes\Etched\Etched::render()
方法处理。
您可以在 Etched
的实例上使用此方法
app(\OllieCodes\Etched\Etched::class)->render($content, $theme);
或使用外观。
\OllieCodes\Etched\Facades\Etched::render($content, $theme);
第二个参数 $theme
是可选的,默认为配置值 etched.defaults.theme
。如果 Markdown 内容中提供了前置部分的值,则主题将被覆盖。