editor_js 0.3.3 → 0.3.5

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: 78823d325e66419e62e84adde1e8ec37586db12f9bbfb35482ccb34187dc2799
4
- data.tar.gz: 47c8ff8f3a588bb6418e0118bca21f183aecf3802e683078f2b2019b565e42f4
3
+ metadata.gz: 8a00ab346b57a44f9fd23bcdca062aa86f0cee25326a5db5e810d193129498a7
4
+ data.tar.gz: 3e96bc0177d267807ad49915cd2eebb312bb29789931da69ed71cdb58f48dedc
5
5
  SHA512:
6
- metadata.gz: 50a8ba307aa9a078f0e50e8364503c5c917fc429d73d5eebe134e2152493ce55d69e8301fb5c9121ce6a6098d6931372e843f59c564b2e802ef3bda9cb43fa12
7
- data.tar.gz: 723fa09aa421e41880ddab811ee431814c9e655ef95ab0dd6fc94a3ebe790d52b1422a6189eb38f41447b743cfce1f96e1d7a27b749fc4af17c33dfcb8d0de0a
6
+ metadata.gz: e65a5f80e1e92a752d39c01a1b72d869d597e12aa541f7790c08d84f3ba84d543f39d74a5758d3a2d54eef8fde9fb32bd8ee90b4a0e5949f044946e27945841a
7
+ data.tar.gz: af6f3ec9825b66dcadabfb05872de9dcc366be87382997dc468dacdf0da9132e4ca02028ffc307c841ae124a948d72ad42546103db7682caee0c5981ea6e6c21
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- editor_js (0.3.3)
4
+ editor_js (0.3.5)
5
5
  actionview (>= 4)
6
6
  activesupport (>= 4)
7
7
  coderay (~> 1.1, >= 1.1.2)
@@ -23,6 +23,7 @@ require 'editor_js/blocks/markdown_block'
23
23
  require 'editor_js/blocks/paragraph_block'
24
24
  require 'editor_js/blocks/qiniu_image_block'
25
25
  require 'editor_js/blocks/quote_block'
26
+ require 'editor_js/blocks/warning_block.rb'
26
27
  require 'editor_js/blocks/table_block'
27
28
  require 'editor_js/blocks/attaches_block'
28
29
  require 'editor_js/document'
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # attaches block
5
6
  class AttachesBlock < Base
6
7
  include ActiveSupport::NumberHelper
7
8
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # checklist block
5
6
  class ChecklistBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -35,8 +36,8 @@ module EditorJs
35
36
  end
36
37
  end
37
38
 
38
- def sanitize!
39
- safe_tags = {
39
+ def safe_tags
40
+ {
40
41
  'b' => nil,
41
42
  'i' => nil,
42
43
  'u' => ['class'],
@@ -45,12 +46,14 @@ module EditorJs
45
46
  'mark' => ['class'],
46
47
  'code' => ['class']
47
48
  }
49
+ end
48
50
 
51
+ def sanitize!
49
52
  data['items'].each do |item|
50
53
  item['text'] = Sanitize.fragment(
51
54
  item['text'],
52
55
  elements: safe_tags.keys,
53
- attributes: safe_tags.select {|k, v| v},
56
+ attributes: safe_tags.select { |_k, v| v },
54
57
  remove_contents: true
55
58
  )
56
59
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # code block
5
6
  class CodeBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # delimiter block
5
6
  class DelimiterBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # embed block
5
6
  class EmbedBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # header_block
5
6
  class HeaderBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # image block
5
6
  class ImageBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # list block
5
6
  class ListBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -29,8 +30,8 @@ module EditorJs
29
30
  end
30
31
  end
31
32
 
32
- def sanitize!
33
- safe_tags = {
33
+ def safe_tags
34
+ {
34
35
  'b' => nil,
35
36
  'i' => nil,
36
37
  'u' => ['class'],
@@ -39,12 +40,14 @@ module EditorJs
39
40
  'mark' => ['class'],
40
41
  'code' => ['class']
41
42
  }
43
+ end
42
44
 
45
+ def sanitize!
43
46
  data['items'] = data['items'].map do |text|
44
47
  Sanitize.fragment(
45
48
  text,
46
49
  elements: safe_tags.keys,
47
- attributes: safe_tags.select {|k, v| v},
50
+ attributes: safe_tags.select { |_k, v| v },
48
51
  remove_contents: true
49
52
  )
50
53
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # markdown block
5
6
  class MarkdownBlock < Base
6
7
  class HTMLwithCodeRay < Redcarpet::Render::HTML
7
8
  def block_code(code, language)
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # paragraph block
5
6
  class ParagraphBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -31,8 +32,8 @@ module EditorJs
31
32
  content_tag(:div, class: class_name_str) { data['text'].html_safe }
32
33
  end
33
34
 
34
- def sanitize!
35
- safe_tags = {
35
+ def safe_tags
36
+ {
36
37
  'b' => nil,
37
38
  'i' => nil,
38
39
  'u' => ['class'],
@@ -41,11 +42,13 @@ module EditorJs
41
42
  'mark' => ['class'],
42
43
  'code' => ['class']
43
44
  }
45
+ end
44
46
 
47
+ def sanitize!
45
48
  data['text'] = Sanitize.fragment(
46
49
  data['text'],
47
50
  elements: safe_tags.keys,
48
- attributes: safe_tags.select {|k, v| v},
51
+ attributes: safe_tags.select { |_k, v| v },
49
52
  remove_contents: true
50
53
  )
51
54
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # qiniu image block
5
6
  class QiniuImageBlock < ImageBlock
6
7
  end
7
8
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # quote block
5
6
  class QuoteBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -28,8 +29,8 @@ module EditorJs
28
29
  end
29
30
  end
30
31
 
31
- def sanitize!
32
- safe_tags = {
32
+ def safe_tags
33
+ {
33
34
  'b' => nil,
34
35
  'i' => nil,
35
36
  'u' => ['class'],
@@ -39,12 +40,14 @@ module EditorJs
39
40
  'code' => ['class'],
40
41
  'br' => nil
41
42
  }
43
+ end
42
44
 
43
- %w(text caption).each do |key|
45
+ def sanitize!
46
+ %w[text caption].each do |key|
44
47
  data[key] = Sanitize.fragment(
45
48
  data[key],
46
49
  elements: safe_tags.keys,
47
- attributes: safe_tags.select {|k, v| v},
50
+ attributes: safe_tags.select { |_k, v| v },
48
51
  remove_contents: false
49
52
  )
50
53
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EditorJs
4
4
  module Blocks
5
+ # table block
5
6
  class TableBlock < Base
6
7
  def schema
7
8
  YAML.safe_load(<<~YAML)
@@ -29,16 +30,35 @@ module EditorJs
29
30
  end
30
31
  end
31
32
 
33
+ def safe_tags
34
+ {
35
+ 'b' => nil,
36
+ 'i' => nil,
37
+ 'u' => ['class'],
38
+ 'del' => ['class'],
39
+ 'a' => ['href'],
40
+ 'mark' => ['class'],
41
+ 'code' => ['class'],
42
+ 'br' => nil
43
+ }
44
+ end
45
+
32
46
  def sanitize!
33
47
  data['content'] = data['content'].map do |row|
34
- row = (row || []).map do |cell_value|
35
- Sanitize.fragment(cell_value, remove_contents: true)
48
+ (row || []).map do |cell_value|
49
+ Sanitize.fragment(
50
+ cell_value,
51
+ elements: safe_tags.keys,
52
+ attributes: safe_tags.select { |_k, v| v },
53
+ remove_contents: false
54
+ )
36
55
  end
37
56
  end
38
57
  end
39
58
 
40
59
  def plain
41
- decode_html data['content'].flatten.join(', ').gsub(/(, )+/, ', ')
60
+ str = data['content'].flatten.join(', ')
61
+ decode_html Sanitize.fragment(str).gsub(/(, )+/, ', ').strip
42
62
  end
43
63
  end
44
64
  end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EditorJs
4
+ module Blocks
5
+ # warning block
6
+ class WarningBlock < Base
7
+ def schema
8
+ YAML.safe_load(<<~YAML)
9
+ type: object
10
+ additionalProperties: false
11
+ properties:
12
+ title:
13
+ type: string
14
+ message:
15
+ type: string
16
+ YAML
17
+ end
18
+
19
+ def render(_options = {})
20
+ title = data['title'].html_safe
21
+ message = data['message'].html_safe
22
+
23
+ content_tag :div, class: css_name do
24
+ html_str = content_tag :div, title, class: "#{css_name}__title"
25
+ html_str << content_tag(:div, message, class: "#{css_name}__message")
26
+ end
27
+ end
28
+
29
+ def safe_tags
30
+ {
31
+ 'b' => nil,
32
+ 'i' => nil,
33
+ 'u' => ['class'],
34
+ 'del' => ['class'],
35
+ 'a' => ['href'],
36
+ 'mark' => ['class'],
37
+ 'code' => ['class']
38
+ }
39
+ end
40
+
41
+ def sanitize!
42
+ %w[title message].each do |key|
43
+ data[key] = Sanitize.fragment(
44
+ data[key],
45
+ elements: safe_tags.keys,
46
+ attributes: safe_tags.select { |_k, v| v },
47
+ remove_contents: false
48
+ )
49
+ end
50
+ end
51
+
52
+ def plain
53
+ string = [
54
+ Sanitize.fragment(data['title']).strip,
55
+ Sanitize.fragment(data['message']).strip
56
+ ].join(', ')
57
+ decode_html(string)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EditorJs
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: editor_js
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - xiaohui
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2020-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -196,6 +196,7 @@ files:
196
196
  - lib/editor_js/blocks/qiniu_image_block.rb
197
197
  - lib/editor_js/blocks/quote_block.rb
198
198
  - lib/editor_js/blocks/table_block.rb
199
+ - lib/editor_js/blocks/warning_block.rb
199
200
  - lib/editor_js/document.rb
200
201
  - lib/editor_js/version.rb
201
202
  homepage: https://github.com/xiaohui-zhangxh/editor_js
@@ -205,7 +206,7 @@ metadata:
205
206
  homepage_uri: https://github.com/xiaohui-zhangxh/editor_js
206
207
  source_code_uri: https://github.com/xiaohui-zhangxh/editor_js
207
208
  changelog_uri: https://github.com/xiaohui-zhangxh/editor_js
208
- post_install_message:
209
+ post_install_message:
209
210
  rdoc_options: []
210
211
  require_paths:
211
212
  - lib
@@ -220,8 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
221
  - !ruby/object:Gem::Version
221
222
  version: '0'
222
223
  requirements: []
223
- rubygems_version: 3.0.6
224
- signing_key:
224
+ rubygems_version: 3.0.8
225
+ signing_key:
225
226
  specification_version: 4
226
227
  summary: Ruby gem for editorjs.io text editor
227
228
  test_files: []