olliecodes/laravel-etched-blade

一个使用 Blade 模板解析和将 Markdown 转换为 HTML 的 Laravel 扩展包

1.0.4 2021-07-01 14:21 UTC

README

A Laravel package that uses blade templates to parse and convert markdown to HTML

Packagist Version Packagist PHP Version Support GitHub codecov Build Status

安装

通过 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 内容中提供了前置部分的值,则主题将被覆盖。