ckeditor5 1.1.4 → 1.1.6
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 +4 -4
- data/README.md +9 -9
- data/lib/ckeditor5/rails/engine.rb +22 -22
- data/lib/ckeditor5/rails/{presets.rb → preset_builder.rb} +0 -95
- data/lib/ckeditor5/rails/presets_manager.rb +59 -0
- data/lib/ckeditor5/rails/toolbar_builder.rb +39 -0
- data/lib/ckeditor5/rails/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b95ee184f10909e8acc238dcc5650a4bcbd828cb8cb32719cb98465223c7bc6c
|
4
|
+
data.tar.gz: 31364b050c64792a5561b4a9fd9de3dfe86a8a338f6a8f8075ca334c1558758d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 916eee6c8da16ad1b6d5ed9c7cd4358724e2a07d64b08b1ba77fdb03e2164a9633d3ce5403a6af70d938f0e1ef73e3a725549b83d93689b43c6225b0700456ea
|
7
|
+
data.tar.gz: c19f382d14e66e8fc8a0f0b49dfa18687cad2697de005700a39532bd6a19928b7f1093ec1aea4fc5d067e36b4edb20ce0476b67946b0700d77045af38d1545e8
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ In your config:
|
|
25
25
|
```rb
|
26
26
|
# config/initializers/ckeditor5.rb
|
27
27
|
|
28
|
-
CKEditor5::Rails
|
28
|
+
CKEditor5::Rails.configure do |config|
|
29
29
|
config.presets.override :default do
|
30
30
|
version '43.3.0'
|
31
31
|
end
|
@@ -102,7 +102,7 @@ You can create your own by defining it in the `config/initializers/ckeditor5.rb`
|
|
102
102
|
```rb
|
103
103
|
# config/initializers/ckeditor5.rb
|
104
104
|
|
105
|
-
CKEditor5::Rails
|
105
|
+
CKEditor5::Rails.configure do |config|
|
106
106
|
config.presets.define :custom
|
107
107
|
gpl
|
108
108
|
type :classic
|
@@ -135,7 +135,7 @@ In order to override existing presets, you can use the `config.presets.override`
|
|
135
135
|
```rb
|
136
136
|
# config/initializers/ckeditor5.rb
|
137
137
|
|
138
|
-
CKEditor5::Rails
|
138
|
+
CKEditor5::Rails.configure do |config|
|
139
139
|
config.presets.override :default do
|
140
140
|
menubar visible: false
|
141
141
|
|
@@ -490,7 +490,7 @@ If you want to use CKEditor 5 under the GPL license, you can include the assets
|
|
490
490
|
<!-- app/views/demos/index.html.erb -->
|
491
491
|
|
492
492
|
<% content_for :head do %>
|
493
|
-
<%= ckeditor5_assets
|
493
|
+
<%= ckeditor5_assets %>
|
494
494
|
<% end %>
|
495
495
|
```
|
496
496
|
|
@@ -511,7 +511,7 @@ Set the version in the `config/initializers/ckeditor5.rb` file:
|
|
511
511
|
```rb
|
512
512
|
# config/initializers/ckeditor5.rb
|
513
513
|
|
514
|
-
CKEditor5::Rails
|
514
|
+
CKEditor5::Rails.configure do
|
515
515
|
presets.override :default do
|
516
516
|
version '43.3.0'
|
517
517
|
end
|
@@ -524,7 +524,7 @@ In order to use `unpkg` CDN, you can pass the `cdn` keyword argument with the va
|
|
524
524
|
<!-- app/views/demos/index.html.erb -->
|
525
525
|
|
526
526
|
<% content_for :head do %>
|
527
|
-
<%= ckeditor5_assets
|
527
|
+
<%= ckeditor5_assets cdn: :unpkg %>
|
528
528
|
<% end %>
|
529
529
|
```
|
530
530
|
|
@@ -534,7 +534,7 @@ or using helper function:
|
|
534
534
|
<!-- app/views/demos/index.html.erb -->
|
535
535
|
|
536
536
|
<% content_for :head do %>
|
537
|
-
<%= ckeditor5_jsdelivr_assets
|
537
|
+
<%= ckeditor5_jsdelivr_assets %>
|
538
538
|
<% end %>
|
539
539
|
```
|
540
540
|
|
@@ -544,7 +544,7 @@ Translating CKEditor 5 is possible by passing the `translations` keyword argumen
|
|
544
544
|
<!-- app/views/demos/index.html.erb -->
|
545
545
|
|
546
546
|
<% content_for :head do %>
|
547
|
-
<%= ckeditor5_assets
|
547
|
+
<%= ckeditor5_assets translations: [:pl] %>
|
548
548
|
<% end %>
|
549
549
|
```
|
550
550
|
|
@@ -553,7 +553,7 @@ Keep in mind, that you need to include the translations in the `config/initializ
|
|
553
553
|
```rb
|
554
554
|
# config/initializers/ckeditor5.rb
|
555
555
|
|
556
|
-
CKEditor5::Rails
|
556
|
+
CKEditor5::Rails.configure do
|
557
557
|
presets.override :default do
|
558
558
|
language :pl
|
559
559
|
end
|
@@ -1,48 +1,48 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rails/engine'
|
4
|
-
|
4
|
+
|
5
|
+
require_relative 'toolbar_builder'
|
6
|
+
require_relative 'preset_builder'
|
7
|
+
require_relative 'presets_manager'
|
8
|
+
|
5
9
|
require_relative 'hooks/form'
|
6
10
|
|
7
11
|
module CKEditor5::Rails
|
8
12
|
class Engine < ::Rails::Engine
|
9
13
|
config.ckeditor5 = ActiveSupport::OrderedOptions.new
|
10
|
-
|
11
|
-
# Specifies configuration of editors generated by gem.
|
12
14
|
config.ckeditor5.presets = PresetsManager.new
|
13
15
|
|
14
16
|
initializer 'helper' do
|
15
|
-
ActiveSupport.on_load(:action_view)
|
16
|
-
include Helpers
|
17
|
-
end
|
17
|
+
ActiveSupport.on_load(:action_view) { include Helpers }
|
18
18
|
end
|
19
19
|
|
20
|
-
initializer 'ckeditor5.simple_form' do
|
21
|
-
next unless defined?(::SimpleForm)
|
22
|
-
|
20
|
+
initializer 'ckeditor5.simple_form', if: -> { defined?(::SimpleForm) } do
|
23
21
|
require_relative 'hooks/simple_form'
|
24
|
-
|
25
22
|
::SimpleForm::FormBuilder.map_type :ckeditor5, to: Hooks::SimpleForm::CKEditor5Input
|
26
23
|
end
|
27
24
|
|
28
25
|
initializer 'ckeditor5.form_builder' do
|
29
26
|
require_relative 'hooks/form'
|
30
|
-
|
31
|
-
ActionView::Helpers::FormBuilder.include(
|
32
|
-
Hooks::Form::FormBuilderExtension
|
33
|
-
)
|
27
|
+
ActionView::Helpers::FormBuilder.include(Hooks::Form::FormBuilderExtension)
|
34
28
|
end
|
35
29
|
|
36
|
-
|
37
|
-
|
38
|
-
|
30
|
+
class << self
|
31
|
+
def base
|
32
|
+
config.ckeditor5
|
33
|
+
end
|
39
34
|
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
def default_preset
|
36
|
+
config.ckeditor5.presets.default
|
37
|
+
end
|
43
38
|
|
44
|
-
|
45
|
-
|
39
|
+
def configure
|
40
|
+
yield config.ckeditor5
|
41
|
+
end
|
46
42
|
end
|
47
43
|
end
|
44
|
+
|
45
|
+
def self.configure(&block)
|
46
|
+
Engine.configure(&block)
|
47
|
+
end
|
48
48
|
end
|
@@ -1,64 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module CKEditor5::Rails
|
4
|
-
class PresetsManager
|
5
|
-
attr_reader :presets
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@presets = {}
|
9
|
-
define_default_preset
|
10
|
-
end
|
11
|
-
|
12
|
-
def define(name, &block)
|
13
|
-
preset = PresetBuilder.new
|
14
|
-
preset.instance_eval(&block)
|
15
|
-
@presets[name] = preset
|
16
|
-
end
|
17
|
-
|
18
|
-
def override(name, &block)
|
19
|
-
@presets[name].instance_eval(&block)
|
20
|
-
end
|
21
|
-
|
22
|
-
def default
|
23
|
-
@presets[:default] || {}
|
24
|
-
end
|
25
|
-
|
26
|
-
def [](name)
|
27
|
-
@presets[name] || {}
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def define_default_preset # rubocop:disable Metrics/MethodLength
|
33
|
-
define :default do
|
34
|
-
gpl
|
35
|
-
|
36
|
-
type :classic
|
37
|
-
|
38
|
-
menubar
|
39
|
-
|
40
|
-
toolbar :undo, :redo, :|, :heading, :|, :bold, :italic, :underline, :|,
|
41
|
-
:link, :insertImage, :mediaEmbed, :insertTable, :blockQuote, :|,
|
42
|
-
:bulletedList, :numberedList, :todoList, :outdent, :indent
|
43
|
-
|
44
|
-
plugins :AccessibilityHelp, :Autoformat, :AutoImage, :Autosave,
|
45
|
-
:BlockQuote, :Bold, :CloudServices,
|
46
|
-
:Essentials, :Heading, :ImageBlock, :ImageCaption, :ImageInline,
|
47
|
-
:ImageInsert, :ImageInsertViaUrl, :ImageResize, :ImageStyle,
|
48
|
-
:ImageTextAlternative, :ImageToolbar, :ImageUpload, :Indent,
|
49
|
-
:IndentBlock, :Italic, :Link, :LinkImage, :List, :ListProperties,
|
50
|
-
:MediaEmbed, :Paragraph, :PasteFromOffice, :PictureEditing,
|
51
|
-
:SelectAll, :Table, :TableCaption, :TableCellProperties,
|
52
|
-
:TableColumnResize, :TableProperties, :TableToolbar,
|
53
|
-
:TextTransformation, :TodoList, :Underline, :Undo, :Base64UploadAdapter
|
54
|
-
|
55
|
-
configure :image, {
|
56
|
-
toolbar: ['imageTextAlternative', 'imageStyle:inline', 'imageStyle:block', 'imageStyle:side']
|
57
|
-
}
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
4
|
class PresetBuilder
|
63
5
|
attr_reader :config
|
64
6
|
|
@@ -132,7 +74,6 @@ module CKEditor5::Rails
|
|
132
74
|
|
133
75
|
def type(type = nil)
|
134
76
|
return @type if type.nil?
|
135
|
-
|
136
77
|
raise ArgumentError, "Invalid editor type: #{type}" unless Editor::Props.valid_editor_type?(type)
|
137
78
|
|
138
79
|
@type = type
|
@@ -181,40 +122,4 @@ module CKEditor5::Rails
|
|
181
122
|
}
|
182
123
|
end
|
183
124
|
end
|
184
|
-
|
185
|
-
class ToolbarBuilder
|
186
|
-
def initialize(toolbar_config)
|
187
|
-
@toolbar_config = toolbar_config
|
188
|
-
end
|
189
|
-
|
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
|
197
|
-
|
198
|
-
def prepend(*prepended_items, before: nil)
|
199
|
-
if before
|
200
|
-
index = items.index(before)
|
201
|
-
raise ArgumentError, "Item '#{before}' not found in toolbar" unless index
|
202
|
-
|
203
|
-
items.insert(index, *prepended_items)
|
204
|
-
else
|
205
|
-
items.insert(0, *prepended_items)
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
|
-
def append(*appended_items, after: nil)
|
210
|
-
if after
|
211
|
-
index = items.index(after)
|
212
|
-
raise ArgumentError, "Item '#{after}' not found in toolbar" unless index
|
213
|
-
|
214
|
-
items.insert(index + 1, *appended_items)
|
215
|
-
else
|
216
|
-
items.push(*appended_items)
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
220
125
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CKEditor5::Rails
|
4
|
+
class PresetsManager
|
5
|
+
attr_reader :presets
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@presets = {}
|
9
|
+
define_default_preset
|
10
|
+
end
|
11
|
+
|
12
|
+
def define(name, &block)
|
13
|
+
preset = PresetBuilder.new
|
14
|
+
preset.instance_eval(&block)
|
15
|
+
@presets[name] = preset
|
16
|
+
end
|
17
|
+
|
18
|
+
def override(name, &block)
|
19
|
+
@presets[name].instance_eval(&block)
|
20
|
+
end
|
21
|
+
|
22
|
+
def default
|
23
|
+
@presets[:default] || {}
|
24
|
+
end
|
25
|
+
|
26
|
+
def [](name)
|
27
|
+
@presets[name] || {}
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def define_default_preset # rubocop:disable Metrics/MethodLength
|
33
|
+
define :default do
|
34
|
+
gpl
|
35
|
+
type :classic
|
36
|
+
menubar
|
37
|
+
|
38
|
+
toolbar :undo, :redo, :|, :heading, :|, :bold, :italic, :underline, :|,
|
39
|
+
:link, :insertImage, :mediaEmbed, :insertTable, :blockQuote, :|,
|
40
|
+
:bulletedList, :numberedList, :todoList, :outdent, :indent
|
41
|
+
|
42
|
+
plugins :AccessibilityHelp, :Autoformat, :AutoImage, :Autosave,
|
43
|
+
:BlockQuote, :Bold, :CloudServices,
|
44
|
+
:Essentials, :Heading, :ImageBlock, :ImageCaption, :ImageInline,
|
45
|
+
:ImageInsert, :ImageInsertViaUrl, :ImageResize, :ImageStyle,
|
46
|
+
:ImageTextAlternative, :ImageToolbar, :ImageUpload, :Indent,
|
47
|
+
:IndentBlock, :Italic, :Link, :LinkImage, :List, :ListProperties,
|
48
|
+
:MediaEmbed, :Paragraph, :PasteFromOffice, :PictureEditing,
|
49
|
+
:SelectAll, :Table, :TableCaption, :TableCellProperties,
|
50
|
+
:TableColumnResize, :TableProperties, :TableToolbar,
|
51
|
+
:TextTransformation, :TodoList, :Underline, :Undo, :Base64UploadAdapter
|
52
|
+
|
53
|
+
configure :image, {
|
54
|
+
toolbar: ['imageTextAlternative', 'imageStyle:inline', 'imageStyle:block', 'imageStyle:side']
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CKEditor5::Rails
|
4
|
+
class ToolbarBuilder
|
5
|
+
def initialize(toolbar_config)
|
6
|
+
@toolbar_config = toolbar_config
|
7
|
+
end
|
8
|
+
|
9
|
+
def items
|
10
|
+
@toolbar_config[:items]
|
11
|
+
end
|
12
|
+
|
13
|
+
def remove(*removed_items)
|
14
|
+
removed_items.each { |item| items.delete(item) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def prepend(*prepended_items, before: nil)
|
18
|
+
if before
|
19
|
+
index = items.index(before)
|
20
|
+
raise ArgumentError, "Item '#{before}' not found in toolbar" unless index
|
21
|
+
|
22
|
+
items.insert(index, *prepended_items)
|
23
|
+
else
|
24
|
+
items.insert(0, *prepended_items)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def append(*appended_items, after: nil)
|
29
|
+
if after
|
30
|
+
index = items.index(after)
|
31
|
+
raise ArgumentError, "Item '#{after}' not found in toolbar" unless index
|
32
|
+
|
33
|
+
items.insert(index + 1, *appended_items)
|
34
|
+
else
|
35
|
+
items.push(*appended_items)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
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.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mateusz Bagiński
|
@@ -59,8 +59,10 @@ files:
|
|
59
59
|
- lib/ckeditor5/rails/helpers.rb
|
60
60
|
- lib/ckeditor5/rails/hooks/form.rb
|
61
61
|
- lib/ckeditor5/rails/hooks/simple_form.rb
|
62
|
-
- lib/ckeditor5/rails/
|
62
|
+
- lib/ckeditor5/rails/preset_builder.rb
|
63
|
+
- lib/ckeditor5/rails/presets_manager.rb
|
63
64
|
- lib/ckeditor5/rails/semver.rb
|
65
|
+
- lib/ckeditor5/rails/toolbar_builder.rb
|
64
66
|
- lib/ckeditor5/rails/version.rb
|
65
67
|
homepage: https://github.com/Mati365/ckeditor5-rails
|
66
68
|
licenses:
|