webard / nova-suneditor
Laravel Nova 集成的轻量级、灵活的 WYSIWYG 编辑器 SunEditor 的自定义字段
v1.1.7
2024-08-07 14:18 UTC
Requires
- php: ^7.3|^8.0
- laravel/nova: ^4.20
Requires (Dev)
- laravel/pint: ^1.0
README
本包为 Laravel Nova 提供了一个集成 SunEditor(一个轻量级、灵活的 WYSIWYG 编辑器)的自定义字段。
特性
- 使用 SunEditor 提供丰富的文本编辑功能。
- 无缝集成 Laravel Nova。
- 易于配置和定制。
- 编辑器内支持表情符号。
安装
要安装自定义字段,请按照以下步骤操作
-
通过 Composer 安装包
composer require webard/nova-suneditor
-
发布资源
php artisan vendor:publish --provider="Webard\NovaSunEditor\FieldServiceProvider"
用法
要在您的 Laravel Nova 资源中使用 SunEditor 字段,请按照以下步骤操作
-
在您的 Nova 资源文件中导入字段
use Webard\NovaSunEditor\SunEditor;
-
将字段添加到您的 Nova 资源的
fields
方法中
public function fields(Request $request) { return [ ID::make()->sortable(), SunEditor::make('Content', 'content') ->rules('required', 'string') ->hideFromIndex(), ]; }
文件上传
SunEditor 支持通过拖放或直接将图片粘贴到编辑器字段中上传。要启用上传,提供 withFiles()
方法,如 Trix
字段中所示
public function fields(Request $request) { return [ ID::make()->sortable(), SunEditor::make('Content', 'content') ->withFiles('disk','path/to/attachments') ]; }
遗憾的是,上传默认情况下与 Nova Actions 中的字段不兼容(Trix 也存在相同问题)。如果您需要在操作模态中上传文件,请提供上传路径并在设置中自行处理上传
public function fields(Request $request) { return [ ID::make()->sortable(), SunEditor::make('Content', 'content') ->withFiles('disk','path/to/attachments') ->settings([ 'imageUploadUrl' => '/your/path/to/handle/upload', ]), ]; }
定制
可以通过一些方法来定制 SunEditor 字段
- 在
nova-suneditor.php
中,您可以定义更多的 buttonLists 并为其命名。然后,您可以使用buttonListName
方法使用 buttonList。
SunEditor::make('Content', 'content') ->buttonListName('my-buttons')
- 您可以直接在字段定义中定义 buttonList
SunEditor::make('Content', 'content') ->buttonList([ [ 'undo', 'redo', 'bold' ] ]);
- 您可以直接在字段定义中更改设置
SunEditor::make('Content', 'content') ->settings([ 'minHeight' => '500px' ]);
待办事项
我正在积极寻求贡献以增强此包。以下是我希望实现的一些功能
- 多语言
- 图片浏览器
- 清除像
Trix
字段中那样的过时附件
贡献
我们欢迎贡献以改进此插件!请按照以下步骤进行贡献
- 分叉存储库。
- 为您的新功能或错误修复创建一个新的分支。
- 进行更改并将它们提交,使用描述性的消息。
- 将您的更改推送到您的分叉存储库。
- 向主存储库打开拉取请求。
许可证
此项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE.md 文件。
鸣谢
联系
有关问题或支持,请在 GitHub 上打开一个问题。