MDX for Laravel Blade

v1.0.0 2023-08-26 12:47 UTC

This package is auto-updated.

Last update: 2024-09-08 14:59:00 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此软件包允许您在markdown中使用blade组件。如果您熟悉MDX格式,那么这与MDX相同,但带有Laravel blade组件。

雇佣我

我可以在该堆栈(Filament、Laravel、Livewire、AlpineJS、TailwindCSS)上进行合同工作。通过电子邮件Discord联系我

安装

您可以通过composer安装此软件包

composer require hasnayeen/mdb

用法

假设您有一个如下的blade组件

<!-- resources/views/components/alert.blade.php -->

@props(['type' => 'info'])

<div {{ $attributes->merge(['class' => "alert alert-{{ $type }}"]) }}>
    {{ $slot }}
</div>

在您的markdown组件中使用此组件,并通过render方法将其转换为html

$content = '
# Welcome to my blog

<x-alert type="success">
This is a success message.
</x-alert>

<x-alert type="warning">
This is a warning message.
</x-alert>

<x-alert type="danger">
This is a danger message.
</x-alert>
';

Mdb::render($content);

或者您也可以在Illuminate\Support\Str类上使用mdb方法

Str::mdb($content);

您也可以通过将选项数组传递给render方法来配置底层的markdown转换器。有关可用选项,请查看League\CommonMark文档

$content = '# MDB Demo';
$config = [
    'html_input' => 'allow',
    'allow_unsafe_links' => true,
    'max_nesting_level' => 4,
    'renderer' => 'block_separator',
];
Mdb::render($content, $config);

您可以通过将它们添加到mdb配置文件来使用额外的扩展以用于markdown渲染。

    'extensions' => [
        'League\CommonMark\Extension\HeadingPermalink\HeadingPermalinkExtension',
    ]

这将添加标题永久链接扩展,将所有标题转换为永久链接。

您可以通过将数组传递给render方法来为扩展提供配置,就像之前一样

$content = '# MDB Demo';
$config = [
    'heading_permalink' => [
        'html_class' => 'heading-permalink',
        'id_prefix' => 'content',
        'apply_id_to_heading' => false,
        'heading_class' => '',
        'fragment_prefix' => 'content',
        'insert' => 'before',
        'min_heading_level' => 1,
        'max_heading_level' => 6,
        'title' => 'Permalink',
        'symbol' => '#',
        'aria_hidden' => true,
    ],
];
Mdb::render($content, $config);

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献以获取详细信息。

安全漏洞

请查阅我们的安全策略了解如何报告安全漏洞。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。