html_to_prosemirror 0.2.0 → 0.3.0

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: b97a5555fbe65c1c4d2473d443120dfc789fdcb008e120887e7d465e43693696
4
- data.tar.gz: a391ed8f83a6774c0b0947d9d37eb4a1eabd59b21c2b78c2e6382fbbe20640a6
3
+ metadata.gz: c9ada9248fe2f95669665e926140ff17a5c39fec1236391e02515a5833b87953
4
+ data.tar.gz: dbc0f6e02954012b55b13bd2c0d4136e5e32e549425c2568e9bacc514b32fc40
5
5
  SHA512:
6
- metadata.gz: 1bd6eacbf9755bed1ecf969c956805d27a1700b8e464c5f0fad619e80ac778a729ab74b3cfeb2225de907467ab72690fbea01becc29997b6fd68a873cadd8521
7
- data.tar.gz: 8ec7c313ba172d7ab08f1f11a5a27dd00e3b7c9e9c0860fe3b3a8bf3e74cf9958528870839aa6f19df15217ec22c02841a4d842e92f8092ad5825ecea39c7ed3
6
+ metadata.gz: 88413722e0d4684b61bc5247de75291cae69f01961b78cb908df71282a4ba1184be4690d31fd58fba872e9ec13b178e0080e5aaa75541bd3fb3db1869a5e69f2
7
+ data.tar.gz: 3f097f2f4d490e69015b6e6c62c246ec9723dbfecb684d563cf843d1b9b07c77c9f28fbcf137c6c6d866c1847385e569f26d649c7ebcd0d2a6d0658c3663bf8d
data/Gemfile.lock CHANGED
@@ -1,41 +1,82 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- html_to_prosemirror (0.2.0)
4
+ html_to_prosemirror (0.3.0)
5
5
  nokogiri
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- diff-lcs (1.3)
11
- nokogiri (1.15.4-x86_64-linux)
12
- racc (~> 1.4)
13
- racc (1.7.1)
14
- rake (10.5.0)
15
- rspec (3.8.0)
16
- rspec-core (~> 3.8.0)
17
- rspec-expectations (~> 3.8.0)
18
- rspec-mocks (~> 3.8.0)
19
- rspec-core (3.8.0)
20
- rspec-support (~> 3.8.0)
21
- rspec-expectations (3.8.2)
10
+ diff-lcs (1.6.2)
11
+ nokogiri (1.19.1-aarch64-linux-gnu)
12
+ racc (~> 1.4)
13
+ nokogiri (1.19.1-aarch64-linux-musl)
14
+ racc (~> 1.4)
15
+ nokogiri (1.19.1-arm-linux-gnu)
16
+ racc (~> 1.4)
17
+ nokogiri (1.19.1-arm-linux-musl)
18
+ racc (~> 1.4)
19
+ nokogiri (1.19.1-arm64-darwin)
20
+ racc (~> 1.4)
21
+ nokogiri (1.19.1-x86_64-darwin)
22
+ racc (~> 1.4)
23
+ nokogiri (1.19.1-x86_64-linux-gnu)
24
+ racc (~> 1.4)
25
+ nokogiri (1.19.1-x86_64-linux-musl)
26
+ racc (~> 1.4)
27
+ racc (1.8.1)
28
+ rake (13.3.1)
29
+ rspec (3.13.2)
30
+ rspec-core (~> 3.13.0)
31
+ rspec-expectations (~> 3.13.0)
32
+ rspec-mocks (~> 3.13.0)
33
+ rspec-core (3.13.6)
34
+ rspec-support (~> 3.13.0)
35
+ rspec-expectations (3.13.5)
22
36
  diff-lcs (>= 1.2.0, < 2.0)
23
- rspec-support (~> 3.8.0)
24
- rspec-mocks (3.8.0)
37
+ rspec-support (~> 3.13.0)
38
+ rspec-mocks (3.13.7)
25
39
  diff-lcs (>= 1.2.0, < 2.0)
26
- rspec-support (~> 3.8.0)
27
- rspec-support (3.8.0)
28
- yard (0.9.34)
40
+ rspec-support (~> 3.13.0)
41
+ rspec-support (3.13.7)
42
+ yard (0.9.38)
29
43
 
30
44
  PLATFORMS
31
- ruby
45
+ aarch64-linux-gnu
46
+ aarch64-linux-musl
47
+ arm-linux-gnu
48
+ arm-linux-musl
49
+ arm64-darwin
50
+ x86_64-darwin
51
+ x86_64-linux-gnu
52
+ x86_64-linux-musl
32
53
 
33
54
  DEPENDENCIES
34
- bundler (~> 1.17)
55
+ bundler (>= 1.17)
35
56
  html_to_prosemirror!
36
- rake (~> 10.0)
57
+ rake (~> 13.0)
37
58
  rspec (~> 3.0)
38
59
  yard
39
60
 
61
+ CHECKSUMS
62
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
63
+ html_to_prosemirror (0.3.0)
64
+ nokogiri (1.19.1-aarch64-linux-gnu) sha256=cfdb0eafd9a554a88f12ebcc688d2b9005f9fce42b00b970e3dc199587b27f32
65
+ nokogiri (1.19.1-aarch64-linux-musl) sha256=1e2150ab43c3b373aba76cd1190af7b9e92103564063e48c474f7600923620b5
66
+ nokogiri (1.19.1-arm-linux-gnu) sha256=0a39ed59abe3bf279fab9dd4c6db6fe8af01af0608f6e1f08b8ffa4e5d407fa3
67
+ nokogiri (1.19.1-arm-linux-musl) sha256=3a18e559ee499b064aac6562d98daab3d39ba6cbb4074a1542781b2f556db47d
68
+ nokogiri (1.19.1-arm64-darwin) sha256=dfe2d337e6700eac47290407c289d56bcf85805d128c1b5a6434ddb79731cb9e
69
+ nokogiri (1.19.1-x86_64-darwin) sha256=7093896778cc03efb74b85f915a775862730e887f2e58d6921e3fa3d981e68bf
70
+ nokogiri (1.19.1-x86_64-linux-gnu) sha256=1a4902842a186b4f901078e692d12257678e6133858d0566152fe29cdb98456a
71
+ nokogiri (1.19.1-x86_64-linux-musl) sha256=4267f38ad4fc7e52a2e7ee28ed494e8f9d8eb4f4b3320901d55981c7b995fc23
72
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
73
+ rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
74
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
75
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
76
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
77
+ rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
78
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
79
+ yard (0.9.38) sha256=721fb82afb10532aa49860655f6cc2eaa7130889df291b052e1e6b268283010f
80
+
40
81
  BUNDLED WITH
41
- 1.17.2
82
+ 4.0.6
@@ -36,8 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
37
  spec.require_paths = ["lib"]
38
38
 
39
- spec.add_development_dependency "bundler", "~> 1.17"
40
- spec.add_development_dependency "rake", "~> 10.0"
39
+ spec.add_development_dependency "bundler", ">= 1.17"
40
+ spec.add_development_dependency "rake", "~> 13.0"
41
41
  spec.add_development_dependency "rspec", "~> 3.0"
42
42
  spec.add_development_dependency "yard"
43
43
  spec.add_dependency "nokogiri"
@@ -1,3 +1,3 @@
1
1
  module HtmlToProsemirror
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -24,7 +24,6 @@ module HtmlToProsemirror
24
24
  class Renderer
25
25
  def initialize(case_type: :snake)
26
26
  @case_type = case_type
27
- @stored_marks = []
28
27
  @marks = [
29
28
  HtmlToProsemirror::Marks::Bold,
30
29
  HtmlToProsemirror::Marks::Code,
@@ -61,7 +60,7 @@ module HtmlToProsemirror
61
60
  # return @document.search('body')[0];
62
61
  # end
63
62
 
64
- def render_children(node)
63
+ def render_children(node, inherited_marks = [])
65
64
  nodes = []
66
65
  node.children.each do |child|
67
66
  child_node = get_matching_node(child)
@@ -69,20 +68,19 @@ module HtmlToProsemirror
69
68
  item = child_node.data()
70
69
  if (item === nil)
71
70
  if (child.children.length > 0)
72
- nodes = nodes + render_children(child)
71
+ nodes = nodes + render_children(child, inherited_marks)
73
72
  end
74
73
  next
75
74
  end
76
75
  if (child.children.length > 0)
77
76
  item = item.merge({
78
- content: render_children(child),
77
+ content: render_children(child, inherited_marks),
79
78
  })
80
79
  end
81
- if (@stored_marks.count > 0)
82
- item = item.merge({
83
- marks: @stored_marks,
84
- })
85
- @stored_marks = [];
80
+ if (inherited_marks.count > 0)
81
+ item = item.merge({
82
+ marks: inherited_marks,
83
+ })
86
84
  end
87
85
  if (@case_type === :lower_camel)
88
86
  item = item.merge(type: item[:type].gsub(/_([a-z])/) { $1.upcase })
@@ -99,9 +97,8 @@ module HtmlToProsemirror
99
97
 
100
98
  child_mark = get_matching_mark(child)
101
99
  if (child_mark)
102
- @stored_marks.push(child_mark.data())
103
100
  if (child.children.length > 0)
104
- nodes = nodes + render_children(child)
101
+ nodes = nodes + render_children(child, inherited_marks + [child_mark.data()])
105
102
  end
106
103
  end
107
104
  end
@@ -132,11 +129,12 @@ module HtmlToProsemirror
132
129
  # 1.2. Remove javascript comments e.g. /* */ and // \/\*[^\*]*\*\/ and ^(\t|\s)*\/\/.*
133
130
  # 3. Replace all carrier return and all tabs by a single space gsub(/(\n|\t)/, ' ').
134
131
  # 4. Replace any consecutive spaces by a single space gsub(/\s{2,}/, ' ')
135
- # 5. Remove space between tags gsub(/>\s+</, '><').strip.
132
+ # 5. Collapse space between tags to a single space gsub(/>\s+</, '> <').strip.
136
133
  html.gsub(/(<!--(\w|\s|:|!|#|<|>|'|"|=|;|,|\.|\?)*-->|\/\*[^\*]*\*\/|^(\t|\s)*\/\/.*)/, '').
137
134
  gsub(/(\n|\t)/, ' ').
138
135
  gsub(/\s{2,}/, ' ').
139
- gsub(/>\s+</, '><').strip
136
+ gsub(/>(\s+)<(?!\/?(a|abbr|b|bdi|br|cite|code|dfn|em|i|img|kbd|mark|q|s|samp|small|span|strong|sub|sup|time|u|var))/i) { '><' }.
137
+ gsub(/>\s+</, '> <').strip
140
138
  end
141
139
  end
142
140
  end
metadata CHANGED
@@ -1,27 +1,26 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html_to_prosemirror
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Kimball
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-09-21 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '1.17'
20
19
  type: :development
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - "~>"
23
+ - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '1.17'
27
26
  - !ruby/object:Gem::Dependency
@@ -30,14 +29,14 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '10.0'
32
+ version: '13.0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '10.0'
39
+ version: '13.0'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rspec
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -126,7 +125,6 @@ homepage: https://github.com/inputhq/html_to_prosemirror
126
125
  licenses:
127
126
  - MIT
128
127
  metadata: {}
129
- post_install_message:
130
128
  rdoc_options: []
131
129
  require_paths:
132
130
  - lib
@@ -141,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
139
  - !ruby/object:Gem::Version
142
140
  version: '0'
143
141
  requirements: []
144
- rubygems_version: 3.3.26
145
- signing_key:
142
+ rubygems_version: 4.0.3
146
143
  specification_version: 4
147
144
  summary: Takes HTML and outputs ProseMirror compatible JSON.
148
145
  test_files: []