webard/nova-suneditor

Laravel Nova 集成的轻量级、灵活的 WYSIWYG 编辑器 SunEditor 的自定义字段

v1.1.7 2024-08-07 14:18 UTC

This package is auto-updated.

Last update: 2024-09-07 14:32:08 UTC


README

本包为 Laravel Nova 提供了一个集成 SunEditor(一个轻量级、灵活的 WYSIWYG 编辑器)的自定义字段。

screenshot

特性

  • 使用 SunEditor 提供丰富的文本编辑功能。
  • 无缝集成 Laravel Nova。
  • 易于配置和定制。
  • 编辑器内支持表情符号。

安装

要安装自定义字段,请按照以下步骤操作

  1. 通过 Composer 安装包

    composer require webard/nova-suneditor
  2. 发布资源

    php artisan vendor:publish --provider="Webard\NovaSunEditor\FieldServiceProvider"

用法

要在您的 Laravel Nova 资源中使用 SunEditor 字段,请按照以下步骤操作

  1. 在您的 Nova 资源文件中导入字段

    use Webard\NovaSunEditor\SunEditor;
  2. 将字段添加到您的 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 字段

  1. nova-suneditor.php 中,您可以定义更多的 buttonLists 并为其命名。然后,您可以使用 buttonListName 方法使用 buttonList。
SunEditor::make('Content', 'content')
    ->buttonListName('my-buttons')
  1. 您可以直接在字段定义中定义 buttonList
SunEditor::make('Content', 'content')
    ->buttonList([
        [
            'undo',
            'redo',
            'bold'
        ]
    ]);
  1. 您可以直接在字段定义中更改设置
SunEditor::make('Content', 'content')
    ->settings([
        'minHeight' => '500px'
    ]);

待办事项

我正在积极寻求贡献以增强此包。以下是我希望实现的一些功能

  • 多语言
  • 图片浏览器
  • 清除像 Trix 字段中那样的过时附件

贡献

我们欢迎贡献以改进此插件!请按照以下步骤进行贡献

  1. 分叉存储库。
  2. 为您的新功能或错误修复创建一个新的分支。
  3. 进行更改并将它们提交,使用描述性的消息。
  4. 将您的更改推送到您的分叉存储库。
  5. 向主存储库打开拉取请求。

许可证

此项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE.md 文件。

鸣谢

  • SunEditor - 优秀的 WYSIWYG 编辑器。
  • Picmo - 此插件中使用的表情符号选择库。

联系

有关问题或支持,请在 GitHub 上打开一个问题。