Class: CKEditor5::Rails::Editor::InlinePluginWindowInitializer

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::TagHelper
Defined in:
lib/ckeditor5/rails/editor/props_inline_plugin.rb

Instance Method Summary collapse

Constructor Details

#initialize(plugin) ⇒ InlinePluginWindowInitializer

Returns a new instance of InlinePluginWindowInitializer.



34
35
36
# File 'lib/ckeditor5/rails/editor/props_inline_plugin.rb', line 34

def initialize(plugin)
  @plugin = plugin
end

Instance Method Details

#to_html(nonce: nil) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ckeditor5/rails/editor/props_inline_plugin.rb', line 38

def to_html(nonce: nil)
  code = <<~JS
    window.addEventListener('ckeditor:request-cjs-plugin:#{@plugin.name}', () => {
      try {
        window['#{@plugin.name}'] = #{@plugin.code};
      } catch(e) {
        console.error('Error initializing CKEditor plugin #{@plugin.name}:', e);
      }
    }, { once: true });
  JS

  tag.script(code.html_safe, nonce: nonce)
end