editor_js 0.3.3 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
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: []