jacobfitzp/ laravel-tiptap-validation
Laravel 验证规则,用于 Tiptap WYSIWYG 编辑器。
1.1.3
2023-08-29 17:49 UTC
Requires
- php: ^8.1
- laravel/helpers: ^1.6
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.4
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- roave/security-advisories: dev-latest
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-11 11:30:23 UTC
README
为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)。有关更多信息,请参阅许可证文件。