PHPackages                             hsmyv/summernote-laravel - 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. hsmyv/summernote-laravel

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

hsmyv/summernote-laravel
========================

Laravel package for Summernote editor

v1.1.0(1mo ago)14MITPHP ^8.1

Since Jun 21Compare

[ Source](https://github.com/hsmyv/summernote-laravel)[ Packagist](https://packagist.org/packages/hsmyv/summernote-laravel)[ RSS](/packages/hsmyv-summernote-laravel/feed)WikiDiscussions Synced 2w ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Summernote Laravel
==================

[](#summernote-laravel)

A simple Laravel package for integrating the Summernote editor with configurable toolbar, fonts, height, and Base64 image processing.

Features
--------

[](#features)

- Summernote Blade component
- Configurable editor height
- Configurable toolbar
- Configurable font names and font sizes
- Base64 image processor
- Single language usage
- Multilingual compatible
- Compatible with Astrotomic Laravel Translatable

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

[](#installation)

Install the package via Composer:

```
composer require hsmyv/summernote-laravel
```

Publish Config
--------------

[](#publish-config)

```
php artisan vendor:publish --tag=summernote-config
```

This will publish the config file:

```
config/summernote.php

```

Example config:

```
return [
    'height' => 300,

    'font_names' => [
        'Arial',
        'Verdana',
        'Tahoma',
        'Times New Roman',
    ],

    'font_names_ignore_check' => [],

    'font_sizes' => [
        '8', '9', '10', '11', '12', '14', '16', '18',
        '20', '24', '28', '32', '36', '48', '64', '72',
    ],

    'toolbar' => [
        ['style', ['style']],
        ['font', ['fontname', 'fontsize', 'bold', 'italic', 'underline', 'clear']],
        ['color', ['color']],
        ['para', ['ul', 'ol', 'paragraph']],
        ['insert', ['link', 'picture']],
        ['view', ['codeview']],
    ],
];
```

Single Language Usage
---------------------

[](#single-language-usage)

In your Blade file:

```

    @csrf

    Save

```

In your controller:

```
use Hsmyv\SummernoteLaravel\SummernoteImage;

public function store(Request $request)
{
    $description = SummernoteImage::process($request->description);

    Post::create([
        'description' => $description,
    ]);

    return redirect()->back();
}
```

Multilingual Usage
------------------

[](#multilingual-usage)

You can use the component with different field names for each locale:

```
@foreach(['en', 'az', 'ru'] as $locale)

@endforeach
```

In your controller:

```
use Hsmyv\SummernoteLaravel\SummernoteImage;

foreach (['en', 'az', 'ru'] as $locale) {
    $post->translateOrNew($locale)->description = SummernoteImage::process(
        $request->input("description:$locale")
    );
}

$post->save();
```

Optional Packages for Multilingual Projects
-------------------------------------------

[](#optional-packages-for-multilingual-projects)

This package does not require multilingual packages by default.

For multilingual Laravel projects, you may use:

```
composer require astrotomic/laravel-translatable
```

Optional localization routing package:

```
composer require mcamara/laravel-localization
```

These packages are optional. Summernote Laravel only provides the editor component and image processing.

Example with Astrotomic Laravel Translatable
--------------------------------------------

[](#example-with-astrotomic-laravel-translatable)

Post model:

```
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Astrotomic\Translatable\Translatable;
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;

class Post extends Model implements TranslatableContract
{
    use Translatable;

    public array $translatedAttributes = [
        'description',
    ];

    protected $guarded = [];
}
```

PostTranslation model:

```
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class PostTranslation extends Model
{
    public $timestamps = false;

    protected $guarded = [];
}
```

Controller example:

```
namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;
use Hsmyv\SummernoteLaravel\SummernoteImage;

class PostController extends Controller
{
    public function store(Request $request)
    {
        $post = new Post();

        foreach (['en', 'az', 'ru'] as $locale) {
            $description = $request->input("description:$locale");

            $post->translateOrNew($locale)->description = $description
                ? SummernoteImage::process($description)
                : null;
        }

        $post->save();

        return redirect()->back();
    }
}
```

Editing Existing Content
------------------------

[](#editing-existing-content)

```
@php
    $locales = ['en' => 'EN', 'az' => 'AZ', 'ru' => 'RU'];
@endphp

@foreach($locales as $code => $label)
    @php
        $value = old("description:$code") ?? (isset($post) ? $post->translate($code)?->description : '');
    @endphp

@endforeach
```

Base64 Image Processing
-----------------------

[](#base64-image-processing)

Summernote may insert images as Base64:

```

```

Use:

```
$content = SummernoteImage::process($content);
```

The package will save the image into:

```
public/uploads/editor

```

and replace the image source with:

```

```

For a complete working example, including CRUD operations, multilingual support, Astrotomic Laravel Translatable integration, and Base64 image processing, please see the example project:

License
-------

[](#license)

The MIT License.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

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 ~0 days

Total

2

Last Release

45d ago

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/hsmyv-summernote-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/hsmyv-summernote-laravel/health.svg)](https://phpackages.com/packages/hsmyv-summernote-laravel)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.7M3.3k](/packages/craftcms-cms)[moonshine/moonshine

Laravel administration panel

1.3k268.2k86](/packages/moonshine-moonshine)[illuminate/view

The Illuminate View package.

13047.7M2.4k](/packages/illuminate-view)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

729176.2k16](/packages/tallstackui-tallstackui)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45844.8k1](/packages/pressbooks-pressbooks)[hasinhayder/tyro-dashboard

Tyro Dashboard - Beautiful admin dashboard for managing Tyro roles, privileges, users, and settings

5495.1k](/packages/hasinhayder-tyro-dashboard)

PHPackages © 2026

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