ehyiah/ux-quill
Symfony UX bundle integrating the Quill.js WYSIWYG editor. Add QuillType to your forms (works well with EasyAdmin), supports AssetMapper or Webpack Encore builds, and includes simple Twig patterns to render saved HTML with Quill styling.
FormType (QuillType), it integrates natively with Symfony’s form system, enabling WYSIWYG fields in forms, EasyAdmin CRUD interfaces, or custom form builders without architectural disruption.QuillInlineFieldInterface, QuillFieldModuleInterface), allowing TPMs to extend functionality (e.g., adding a custom toolbar button or module) without forking the package. This modularity aligns with Symfony’s component-based philosophy.quill:connect, hydrate:before) for JavaScript customization, enabling granular control over Quill’s lifecycle (e.g., dynamic toolbar updates, content sanitization).<twig:QuillContent> component for rendering HTML output, reducing template complexity and ensuring consistency across views.composer require ehyiah/ux-quill and asset configuration (AssetMapper or Webpack Encore). No database migrations or major refactoring needed.yarn install/npm install and recompilation (standard for Symfony UX bundles). May need adjustments for custom modules (e.g., Katex, Highlight.js).<div class="ql-snow">) for class-based styling or inline styling for CSS-free rendering. This adds minor template complexity but ensures flexibility.QuillAdminField::new()).addAssetMapperEntries() may require manual workarounds (e.g., overriding EasyAdmin’s asset configuration). Documented in the changelog.symfony/html-sanitizer: The bundle now relies on Symfony’s built-in sanitizer (introduced in v3.0.0). TPMs must ensure their forms use Symfony’s Censor filter or DOMPurify for additional security if raw HTML is accepted.path to upload_endpoint in upload_handler options, and v3.0.0 moved modules to the top level. Upgrades may require form/type updates.DOMPurify or a custom filter?QuillAdminField, but complex forms may need custom field types.style="inline").tiptap (~50KB) if performance is critical.QuillAdminField::new()).TextType, EntityType).yarn install/npm install and recompilation. May need adjustments for custom modules.<twig:QuillContent> component for rendering HTML, reducing template complexity.text or longtext columns). No ORM-specific requirements.Censor or DOMPurify for additional security.description, content, bio).DOMPurify.TextType field with QuillType:
$builder->add('content', QuillType::class, [
'quill_options' => [
'modules' => ['history', 'toolbar'],
'toolbar' => ['bold', 'italic', 'link'],
],
]);
<twig:QuillContent>).QuillAdminField:
$crud->addField('description', QuillAdminField::new()->setQuillOptions([
'modules' => ['history'],
]));
configureAssets().MentionModule, TableModule) via PHP interfaces.Censor filter or `How can I help you explore Laravel packages today?