A far as I understood things, as from Drupal 10.3 onwards, we are should be able to upload SVG images in the CKEditor 5 as long as we implement the following hook...
/**
* Drupal 10.3+: Enable upload of SVGs and WebP images in the CKEditor.
*/
function MY_MODULE_ckeditor5_plugin_info_alter(array &$plugin_definitions): void {
$image_upload_plugin_definition = $plugin_definitions['ckeditor5_imageUpload']->toArray();
$image_upload_plugin_definition['ckeditor5']['config']['image']['upload']['types'][] = 'webp';
$image_upload_plugin_definition['ckeditor5']['config']['image']['upload']['types'][] = 'svg';
$plugin_definitions['ckeditor5_imageUpload'] = new CKEditor5PluginDefinition($image_upload_plugin_definition);
}
However, when I implement it exactly as above, it does indeed add .webp files to the available types but does not add .svg filetype.
Is there another step I need to do?
Thanks all.
Comments
Comment #2
juagarc4 commentedHi SirClickalot
I had the same problem and found a solution in the file "ckeditor5_test_module_allowed_image.module".
The type should be an IANA image media type Name, like it's explained in the mentioned file.
So, you should replace your line:
$image_upload_plugin_definition['ckeditor5']['config']['image']['upload']['types'][] = 'svg';by
$image_upload_plugin_definition['ckeditor5']['config']['image']['upload']['types'][] = 'svg+xml';It should fix your problem.
Regards
Comment #3
cilefen commentedComment #4
sirclickalot@juagarc4 brilliant, just what I needed, thank you!
Comment #5
juagarc4 commentedHi SirClickalot,
I close this ticket since the problem has been solved :-)
Regards
Comment #6
juagarc4 commentedComment #8
lissy commentedi am using Ckeditor 5 with Drupal 10.4.1 and would like to use svg-images with the image plugin from ckeditor.
I tried the function above in my Sub-theme from claro but it is not possible to upload svg.
Where is to place the hook? Or did i need aditional configuration?
Comment #9
juagarc4 commentedHi lissy,
the function with the necessary change applied:
should be placed into the file with extension ".module" of a custom module replacing the prefix "MY_MODULE" by the name of the module. Then you should enable the module and clear cache. No other configuration is needed.
This hook should be placed in a module since placing it in a theme won't work for Backend.
Regards