jacobfitzp/laravel-tiptap-validation

Laravel 验证规则,用于 Tiptap WYSIWYG 编辑器。

1.1.3 2023-08-29 17:49 UTC

README

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

Tiptap 编辑器内容配置的 Laravel 验证规则。

$rules = [
    'tiptap_content' => [
        'required',
        TiptapValidation::content()
            ->whitelist()
            ->nodes('text', 'paragraph')
            ->marks('bold', 'italic', 'link'),
        TiptapValidation::containsText()
            ->between(18, 256),
    ],
];

在您的后端验证 Tiptap 内容,以防止使用不受欢迎的元素和样式。

请注意

此包仅与 JSON 输出兼容,不与原始 HTML 兼容。您可以在这里了解更多关于输出 Tiptap JSON 内容的信息。

安装

您可以通过 composer 安装此包

composer require jacobfitzp/laravel-tiptap-validation

然后,将服务提供者添加到 config/app.php

JacobFitzp\LaravelTiptapValidation\TiptapValidationServiceProvider::class,

用法

内容

TiptapContent 规则用于验证基本结构和格式,以及限制允许的节点和标记。

只需在您的规则中调用 TiptapValidation::content() 即可。

TiptapValidation::content()

黑名单

只有不在黑名单中指定的节点和标记会被允许,其他任何内容都将失败验证。

TiptapValidation::content()
    ->blacklist()
    ->nodes('orderedList', 'listItem')
    ->marks('italic', 'link')

白名单

只有指定的节点和标记会被允许,不在白名单中的内容将失败验证。

TiptapValidation::content()
    ->whitelist()
    ->nodes('text', 'paragraph')
    ->marks('bold')

扩展

您不必每次都配置规则,只需创建一个具有默认偏好的扩展即可。

class MyCustomTiptapValidationRule extends TiptapContent
{
    protected TiptapValidationRuleMode $mode = TiptapValidationRuleMode::WHITELIST;
    protected array $nodes = ['text', 'paragraph', 'table'];
    protected array $marks = ['italic', 'link'];
}

然后可以无需进一步配置即可使用。

MyCustomTiptapValidationRule::make(),

包含文本

TiptapContainsText 规则用于验证内容是否包含文本,并满足可选的字符计数要求。

TiptapValidation::containsText()
    ->minimum(12) // Minimum character requirement
    ->maximum(156) // Maximum character requirement
    ->between(12, 156) // Minimum and maximum character requirement

配置

错误消息

首先发布翻译文件

php artisan vendor:publish --provider="JacobFitzp\LaravelTiptapValidation\TiptapValidationServiceProvider" --tag="tiptap-validation-translations"

然后您可以在 lang/vendor/tiptap-validation/messages.php 中配置错误消息。

测试

composer test

更新日志

有关最近更改的更多信息,请参阅更新日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件