ckeditor5 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b14779f0c4c2e4358c77ed004b6c5ef191b2ff766fc95ba6c8f0245f7314f206
4
- data.tar.gz: 0a47a7b166356002ef4b25879e420b42693bc1851596da4b4db1382d704fc875
3
+ metadata.gz: 0aee8586159157d2581cefe62cc87ea58d822db618c0f0dd9ceee5c0d3fdba46
4
+ data.tar.gz: 550633bd1bb74e54909f19447f7ced3bff0f6bd10324b44c9076641eb65e08e7
5
5
  SHA512:
6
- metadata.gz: c7d8727f46f14c759f181dc77e19d4778efdb34e19327667922df06a7dcaa65d2512a4106d9dc0cf2f8810c7cb03b51e8cf440bda521f2cd237f7535447ac644
7
- data.tar.gz: f6b08e3fa6292af226cdc2e29867ec5ffaa52cdba2a3ca6843735e4672e6d9411a7a30520b007a4cd267fa7dc69e380de8135831767d396674b4f768efc19737
6
+ metadata.gz: ba63dc4631e0703b8d719b7b2c21efc97183455550e6eb6406f96f8e789baaf1ed7dd202d0711ca100f39e906b386c026ef8515042d6441bce465baf6de8b10a
7
+ data.tar.gz: 15a0df8fd18291bc5d47e9a15df2d0192316512b38a85ec07c4bc047895d1111a6bd92afa2c09bdab639f31485a039538d7390048e39d66ea22bf51373e22e38
data/README.md CHANGED
@@ -138,6 +138,13 @@ In order to override existing presets, you can use the `config.presets.override`
138
138
  CKEditor5::Rails::Engine.configure do |config|
139
139
  config.presets.override :default do
140
140
  menubar visible: false
141
+
142
+ toolbar do
143
+ remove :underline, :heading
144
+
145
+ # prepend :underline
146
+ # append :heading
147
+ end
141
148
  end
142
149
  end
143
150
  ```
@@ -305,6 +312,20 @@ config.presets.override :default do
305
312
  end
306
313
  ```
307
314
 
315
+ If you want to remove items from the toolbar, you can use the `remove` method:
316
+
317
+ ```rb
318
+ # config/initializers/ckeditor5.rb
319
+
320
+ config.presets.override :default do
321
+ # ... other configuration
322
+
323
+ toolbar do
324
+ remove :selectAll, :heading #, ...
325
+ end
326
+ end
327
+ ```
328
+
308
329
  #### `menubar(visible: true)` method
309
330
 
310
331
  Defines the visibility of the menubar. By default, it's set to `true`.
@@ -783,12 +804,26 @@ This section covers frequent questions and scenarios when working with CKEditor
783
804
 
784
805
  ### Setting Initial Content 📝
785
806
 
807
+ You can set the initial content of the editor using the `initial_data` keyword argument or by passing the content directly to the `ckeditor5_editor` helper block.
808
+
809
+ The example below shows how to set the initial content of the editor using the `initial_data` keyword argument:
810
+
786
811
  ```erb
787
812
  <%= ckeditor5_editor initial_data: "<p>Initial content</p>" %>
788
813
  ```
789
814
 
815
+ The example below shows how to set the initial content of the editor using the `ckeditor5_editor` helper block.
816
+
817
+ ```erb
818
+ <%= ckeditor5_editor do %>
819
+ <p>Initial content</p>
820
+ <% end %>
821
+ ```
822
+
790
823
  ### Setting Editor Language 🌐
791
824
 
825
+ You can set the language of the editor using the `language` method in the `config/initializers/ckeditor5.rb` file. The `translations` method fetches the translations files, while the `language` method sets the default language of the editor.
826
+
792
827
  ```rb
793
828
  config.presets.override :default do
794
829
  translations :pl, :es
@@ -798,6 +833,8 @@ end
798
833
 
799
834
  ### Integrating with Forms 📋
800
835
 
836
+ You can integrate CKEditor 5 with Rails form builders like `form_for` or `simple_form`. The example below shows how to integrate CKEditor 5 with a Rails form using the `form_for` helper:
837
+
801
838
  #### Rails form builder integration
802
839
 
803
840
  ```erb
@@ -51,12 +51,17 @@ class CKEditorComponent extends HTMLElement {
51
51
  /** @type {Record<string, HTMLElement>} Map of editable elements by name */
52
52
  editables = {};
53
53
 
54
+ /** @type {String} Initial HTML passed to component */
55
+ #initialHTML = '';
56
+
54
57
  /**
55
58
  * Lifecycle callback when element is connected to DOM
56
59
  * Initializes the editor when DOM is ready
57
60
  * @protected
58
61
  */
59
62
  connectedCallback() {
63
+ this.#initialHTML = this.innerHTML;
64
+
60
65
  try {
61
66
  execIfDOMReady(() => this.#reinitializeEditor());
62
67
  } catch (error) {
@@ -179,7 +184,7 @@ class CKEditorComponent extends HTMLElement {
179
184
  this.style.display = 'block';
180
185
 
181
186
  if (!this.isMultiroot() && !this.isDecoupled()) {
182
- this.innerHTML = `<${this.#editorElementTag}></${this.#editorElementTag}>`;
187
+ this.innerHTML = `<${this.#editorElementTag}>${this.#initialHTML}</${this.#editorElementTag}>`;
183
188
  this.#assignInputAttributes();
184
189
  }
185
190
 
@@ -24,14 +24,15 @@ module CKEditor5::Rails
24
24
  config = config.deep_merge(extra_config)
25
25
  config[:initialData] = initial_data if initial_data
26
26
 
27
+ raise ArgumentError, 'Cannot pass initial data and block at the same time.' if initial_data && block
28
+
27
29
  editor_props = build_editor_props(
28
30
  config: config,
29
31
  type: type,
30
32
  context: context
31
33
  )
32
34
 
33
- render_editor_component(editor_props, html_attributes,
34
- &(%i[multiroot decoupled].include?(type) ? block : nil))
35
+ render_editor_component(editor_props, html_attributes, &block)
35
36
  end
36
37
 
37
38
  def ckeditor5_editable(name = nil, **kwargs, &block)
@@ -187,29 +187,33 @@ module CKEditor5::Rails
187
187
  @toolbar_config = toolbar_config
188
188
  end
189
189
 
190
- def prepend(*items, before: nil)
191
- toolbar_items = @toolbar_config[:items]
190
+ def items
191
+ @toolbar_config[:items]
192
+ end
193
+
194
+ def remove(*removed_items)
195
+ removed_items.each { |item| items.delete(item) }
196
+ end
192
197
 
198
+ def prepend(*prepended_items, before: nil)
193
199
  if before
194
- index = toolbar_items.index(before)
200
+ index = items.index(before)
195
201
  raise ArgumentError, "Item '#{before}' not found in toolbar" unless index
196
202
 
197
- toolbar_items.insert(index, *items)
203
+ items.insert(index, *prepended_items)
198
204
  else
199
- toolbar_items.insert(0, *items)
205
+ items.insert(0, *prepended_items)
200
206
  end
201
207
  end
202
208
 
203
- def append(*items, after: nil)
204
- toolbar_items = @toolbar_config[:items]
205
-
209
+ def append(*appended_items, after: nil)
206
210
  if after
207
- index = toolbar_items.index(after)
211
+ index = items.index(after)
208
212
  raise ArgumentError, "Item '#{after}' not found in toolbar" unless index
209
213
 
210
- toolbar_items.insert(index + 1, *items)
214
+ items.insert(index + 1, *appended_items)
211
215
  else
212
- toolbar_items.push(*items)
216
+ items.push(*appended_items)
213
217
  end
214
218
  end
215
219
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CKEditor5::Rails
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ckeditor5
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateusz Bagiński