PHPackages                             webard/nova-suneditor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. webard/nova-suneditor

ActiveLibrary[Templating &amp; Views](/categories/templating)

webard/nova-suneditor
=====================

Custom field for Laravel Nova that integrates the SunEditor, a lightweight and flexible WYSIWYG editor

v2.0.0(1y ago)325.9k—7%5[3 issues](https://github.com/webard/nova-suneditor/issues)MITPHPPHP ^7.3|^8.0

Since Jul 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/webard/nova-suneditor)[ Packagist](https://packagist.org/packages/webard/nova-suneditor)[ RSS](/packages/webard-nova-suneditor/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (2)Versions (16)Used By (0)

SunEditor Field for Laravel Nova
================================

[](#suneditor-field-for-laravel-nova)

This package provides a custom field for Laravel Nova that integrates the SunEditor, a lightweight and flexible WYSIWYG editor.

[![screenshot](screenshot.png)](screenshot.png)

Features
--------

[](#features)

- Rich text editing capabilities with SunEditor.
- Seamless integration with Laravel Nova.
- Easy configuration and customization.
- Emoji support within editor.

Installation
------------

[](#installation)

To install the custom field, follow these steps:

1. Install the package via Composer:

    ```
    composer require webard/nova-suneditor
    ```
2. Publish the assets:

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

Usage
-----

[](#usage)

To use the SunEditor field in your Laravel Nova resource, follow these steps:

1. Import the field in your Nova resource file:

    ```
    use Webard\NovaSunEditor\SunEditor;
    ```
2. Add the field to the `fields` method of your Nova resource:

```
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        SunEditor::make('Content', 'content')
            ->rules('required', 'string')
            ->hideFromIndex(),
    ];
}
```

File upload
-----------

[](#file-upload)

SunEditor supports uploading by drag&amp;drop or pasting image directly into editor field. To enable upload, provide `withFiles()` method, like in `Trix` field:

```
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        SunEditor::make('Content', 'content')
            ->withFiles('disk','path/to/attachments')
    ];
}
```

Unfortunately, upload does not work out of the box with fields in Nova Actions (Trix has same problem). If you need to upload files in Action modal, provide path to upload in settings and handle upload by yourself:

```
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',
            ]),
    ];
}
```

Customization
-------------

[](#customization)

The SunEditor field can be customized by some methods:

1. In `nova-suneditor.php` you can define more buttonLists and name them. Then, you can use buttonList using `buttonListName` method.

```
SunEditor::make('Content', 'content')
    ->buttonListName('my-buttons')
```

2. You can define buttonList directly in field definition:

```
SunEditor::make('Content', 'content')
    ->buttonList([
        [
            'undo',
            'redo',
            'bold'
        ]
    ]);
```

3. You can change settings directly in field definition:

```
SunEditor::make('Content', 'content')
    ->settings([
        'minHeight' => '500px'
    ]);
```

TODO
----

[](#todo)

I'm are actively seeking contributions to enhance this package. Here are some features I would love to see implemented:

- multi-language
- image browser
- purging stale attachments like in `Trix` field

Contributing
------------

[](#contributing)

We welcome contributions to improve this plugin! Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them with descriptive messages.
4. Push your changes to your forked repository.
5. Open a pull request to the main repository.

License
-------

[](#license)

This project is licensed under the MIT License. See the [LICENSE.md](LICENSE.md) file for more details.

Acknowledgements
----------------

[](#acknowledgements)

- [SunEditor](https://github.com/JiHong88/suneditor) - Excellent WYSIWYG editor.
- [Picmo](https://github.com/joeattardi/picmo) - The emoji picker library used in this plugin.

Contact
-------

[](#contact)

For questions or support, please open an issue on GitHub.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~18 days

Recently: every ~58 days

Total

15

Last Release

415d ago

Major Versions

v1.1.9 → v2.0.02025-03-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/e34f6439ff69a5e372136c97bf9166d48010bfa7dd29af729e8a6db98d58335d?d=identicon)[webard](/maintainers/webard)

---

Top Contributors

[![webard](https://avatars.githubusercontent.com/u/855788?v=4)](https://github.com/webard "webard (20 commits)")[![Jaspur](https://avatars.githubusercontent.com/u/4254854?v=4)](https://github.com/Jaspur "Jaspur (1 commits)")[![lu-roth](https://avatars.githubusercontent.com/u/37230820?v=4)](https://github.com/lu-roth "lu-roth (1 commits)")[![nurmuhammet-ali](https://avatars.githubusercontent.com/u/25463082?v=4)](https://github.com/nurmuhammet-ali "nurmuhammet-ali (1 commits)")

---

Tags

editorlaravellaravel-novanovanova-fieldsuneditorwysiwyglaravelwysiwygnovasuneditor

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/webard-nova-suneditor/health.svg)

```
[![Health](https://phpackages.com/badges/webard-nova-suneditor/health.svg)](https://phpackages.com/packages/webard-nova-suneditor)
```

###  Alternatives

[whitecube/nova-flexible-content

Flexible Content &amp; Repeater Fields for Laravel Nova.

8053.0M25](/packages/whitecube-nova-flexible-content)[outl1ne/nova-multiselect-field

A multiple select field for Laravel Nova.

3402.9M2](/packages/outl1ne-nova-multiselect-field)[waynestate/nova-ckeditor4-field

This nova package allows you to use CKEditor 4 for text areas.

62739.1k8](/packages/waynestate-nova-ckeditor4-field)[johnathan/nova-trumbowyg

A Laravel Nova wrapper for the Trumbowyg WYSIWYG editor

25214.0k](/packages/johnathan-nova-trumbowyg)[interaction-design-foundation/nova-unlayer-field

A Laravel Nova field for Unlayer to compose emails and landing pages.

35256.8k](/packages/interaction-design-foundation-nova-unlayer-field)[interaction-design-foundation/nova-html-code-field

A Laravel Nova field to write raw HTML and preview.

11157.5k](/packages/interaction-design-foundation-nova-html-code-field)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
