diff --git a/app/javascript/vue/shared/external_tinymce_plugins.js b/app/javascript/vue/shared/external_tinymce_plugins.js
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/javascript/vue/shared/tinymce_editor.vue b/app/javascript/vue/shared/tinymce_editor.vue
index 8d4bd7b4a..4f1e92c4c 100644
--- a/app/javascript/vue/shared/tinymce_editor.vue
+++ b/app/javascript/vue/shared/tinymce_editor.vue
@@ -36,6 +36,8 @@ import 'tinymce/plugins/help/js/i18n/keynav/en';
import 'tinymce/plugins/quickbars';
import 'tinymce/plugins/directionality';
+import './external_tinymce_plugins.js'; // Load external plugins
+
// Content styles, including inline UI like fake cursors
// All the above CSS files are loaded on to the page but these two must
// be loaded into the editor iframe so they are loaded as strings and passed
@@ -68,8 +70,7 @@ export default {
default: () => `
table autoresize link advlist codesample code autolink lists
charmap anchor searchreplace wordcount visualblocks visualchars
- insertdatetime nonbreaking save directionality help quickbars
- `
+ insertdatetime nonbreaking save directionality help quickbars`
},
menubar: {
default: 'file edit view insert format'
@@ -86,13 +87,13 @@ export default {
mounted() {
tinyMCE.init({
selector: `#${this.textareaId}`,
- plugins: this.plugins,
+ plugins: `${this.plugins} ${window.extraTinyMcePlugins || ''}`,
menubar: this.menubar,
skin: false,
content_css: false,
content_style: contentStyle,
convert_urls: false,
- toolbar: this.toolbar,
+ toolbar: window.customLightTinyMceToolbar || this.toolbar,
contextmenu: '',
promotion: false,
menu: {
@@ -185,7 +186,13 @@ export default {
editor.setContent(this.modelValue);
});
editor.on('change', () => {
- this.$emit('update:modelValue', editor.getContent());
+ let content = editor.getContent();
+
+ // Remove images
+ content = content.replace(/
]*>/g, '');
+
+ editor.setContent(content);
+ this.$emit('update:modelValue', content);
});
}
});
@@ -202,6 +209,7 @@ export default {
editorIframe.contents().find('head').append(``);
editorIframe.contents().find('head').append($('#font-css-pack').clone());
}