jacksleight/statamic-bard-mutator

此包的最新版本(3.0.0)没有可用的许可信息。

3.0.0 2024-09-03 16:44 UTC

README

Bard Mutator

此Statamic插件允许您修改Bard字段类型渲染的数据和标签,让您完全控制最终HTML。您可以添加、删除和修改属性,包裹标签和内容,或完全重命名和替换标签。您还可以在渲染HTML之前对原始数据进行更改。

示例

以下是一些可能的示例。有关更多信息及更多示例,请查看文档

为所有外部链接添加类

use JackSleight\StatamicBardMutator\Facades\Mutator;
use Statamic\Facades\URL;

Mutator::html('link', function ($value) {
    if (URL::isExternal($value[1]['href'])) {
        $value[1]['class'] = 'external';
    }
    return $value;
});

为所有2级标题添加自动生成的ID

use Illuminate\Support\Str;
use JackSleight\StatamicBardMutator\Facades\Mutator;

Mutator::html('heading', function ($value, $item) {
    if ($item->attrs->level === 2) {
        $value[1]['id'] = Str::slug(collect($item->content)->implode('text', ''));
    }
    return $value;
});

为所有标题添加永久链接锚点

use Illuminate\Support\Str;
use JackSleight\StatamicBardMutator\Facades\Mutator;
use JackSleight\StatamicBardMutator\Support\Data;

Mutator::data('heading', function ($data) {
    $slug = Str::slug(collect($data->content)->implode('text', ''));
    array_unshift(
        $data->content,
        Data::html('<a id="'.$slug.'" href="#'.$slug.'">#</a>')
    );
});

文档

Statamic Bard Mutator 文档

兼容性

为了给您提供访问Tiptap渲染过程,Bard Mutator需要覆盖Tiptap编辑器类,并用自己的扩展替换内置扩展。只有在没有其他插件(或用户代码)尝试做同样的事情时,它才能可靠地做到这一点。为了帮助最小化不兼容性,Bard Mutator只会替换正在被修改的扩展。

赞助

此插件完全免费使用。然而,修复错误、添加功能和帮助用户需要时间和精力。如果您觉得这个插件很有用,并想支持其开发,任何贡献都将非常感激。谢谢!😄