- Introduction
- Installation
- Basic Usage
- Advanced Features
- Customization
- Changelog
- Contributing
- Support
A powerful Livewire rich text editor (WYSIWYG) component built on top of Jodit Editor, providing seamless integration with Laravel Livewire.
To use this package, you must have Livewire 3 installed.
Install this package via Composer:
composer require mantix/livewire-jodit-text-editor
Include the Jodit Editor theme and the library in your layout or specific view:
<!-- Include Jodit CSS Styling -->
<link rel="stylesheet" href="//unpkg.com/jodit@4.1.16/es2021/jodit.min.css">
<!-- Include the Jodit JS Library -->
<script src="//unpkg.com/jodit@4.1.16/es2021/jodit.min.js"></script>
Or use NPM to install the Jodit Editor directly in your project:
npm install jodit
Import it in your app.js like:
// Jodit Editor
import 'jodit/esm/plugins/resizer/resizer'; // Resizer plugin is used when inserting images
import 'jodit/esm/plugins/video/video'; // Video plugin is used to insert videos
// Feel free to add extra plugins here...
import { Jodit } from 'jodit';
window.Jodit = Jodit;
And in your app.scss:
// Jodit Editor
@import 'jodit/es2021/jodit';
For additional information, refer to the Jodit Editor documentation.
The simplest way to use the editor:
<livewire:jodit-text-editor wire:model.live="content" />
You can customize the toolbar buttons by passing an array:
<livewire:jodit-text-editor
wire:model.live="content"
:buttons="['bold', 'italic', 'underline', 'strikeThrough', '|', 'left', 'center', 'right', '|', 'link', 'image']"
/>
When using multiple editors on the same page, you can assign unique identifiers to target them individually:
<livewire:jodit-text-editor
wire:model.live="description"
identifier="description-editor"
/>
<livewire:jodit-text-editor
wire:model.live="content"
identifier="content-editor"
/>
You can update editor content programmatically using Livewire's dispatch method:
// This will update all Jodit editors on the page
$this->dispatch('update-jodit-content', $newContent);
// This will only update the editor with the specified identifier
$this->dispatch('update-jodit-content', ['description-editor', $newContent]);
The text editor component is entirely customizable. Publish the view file to customize it:
php artisan vendor:publish --tag=livewire-jodit-text-editor-views
After publishing, you can edit the view at resources/views/vendor/livewire-jodit-text-editor/livewire/jodit-text-editor.blade.php
.
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Is this plugin helpful to you? Let me know by connecting on LinkedIn or on X.