filamentboot / filamentboot-rich-editor
基于 Filament 5 内置 Tiptap RichEditor 的增强版富文本编辑器插件,含媒体库图片上传、XSS 过滤、磁盘联动。
Package info
github.com/filamentboot/filamentboot-rich-editor
pkg:composer/filamentboot/filamentboot-rich-editor
Requires
- php: ^8.3
- filament/filament: ^5.0
- filamentboot/filamentboot: ^0.5
- mews/purifier: ^3.4
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.27
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.5.12
This package is auto-updated.
Last update: 2026-06-24 09:41:41 UTC
README
基于 Filament 5 内置 Tiptap RichEditor 的增强版富文本编辑器插件,含媒体库图片上传、XSS 过滤、磁盘联动。
简介
本包在 Filament 5 内置 Tiptap RichEditor 基础上进行扩展,提供 RichEditorField 字段组件。图片上传磁盘动态读取后台 UploadSettings.default_disk,支持 oss、cos、public 等磁盘,并可通过 ->disk() 在组件级单独覆盖;保存前的 HTML 内容经 mews/purifier 过滤,防止 XSS 注入。
要求
- PHP
^8.3、Laravel^13、Filament^5 - 依赖主包
filamentboot/filamentboot ^0.5 mews/purifier ^3.4(HTML XSS 过滤)
安装
composer require filamentboot/filamentboot-rich-editor
发布配置文件(可选):
php artisan vendor:publish --tag=filamentboot-rich-editor-config
使用
1. 注册插件
在 app/Providers/Filament/AdminPanelProvider.php 中注册:
use Filamentboot\FilamentbootRichEditor\RichEditorPlugin; public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ RichEditorPlugin::make(), ]); }
2. 在表单中使用
use Filamentboot\FilamentbootRichEditor\Forms\RichEditorField; RichEditorField::make('content') ->label('内容') ->columnSpanFull(),
指定组件级上传磁盘(优先于全局 UploadSettings):
RichEditorField::make('content') ->disk('oss'), // 或 'cos'、'public'
3. XSS 过滤
在 Resource 的 mutateFormDataBeforeSave 中调用净化器:
use Filamentboot\FilamentbootRichEditor\Support\RichEditorPurifier; protected function mutateFormDataBeforeSave(array $data): array { $data['content'] = app(RichEditorPurifier::class)->clean($data['content']); return $data; }
禁止直接使用
{!! $html !!}输出未经过滤的富文本内容。
许可
MIT License,详见 LICENSE。