kramdown-prismic 0.3.3 → 0.3.7
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/CHANGELOG.md +16 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/kramdown/converter/prismic.rb +23 -1
- data/lib/kramdown-prismic/version.rb +1 -1
- data/test/converter_test.rb +100 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c409891cb5fb66652154697c053d2f4898c2bdbdb40f90a42df53eb2c41994f2
|
4
|
+
data.tar.gz: aa59f8c4ea6b262abbadea2a810e91901a3bb719bf28dd94206b17d2f46a5204
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7da022135525388a0fb64b091804e65cef0e1307e7ff2cfb0203f3c007fc736393d600dd3119441073fcb73fed956ad45b015d90d4b720ecfacc8851d7132a4e
|
7
|
+
data.tar.gz: 7fbf4b233127d8bba128bcad4624ca13008f1a0dbc6e8c8a7121ac87c8fd72e11f90b046a738cb516965da42ef9c228fcab13fee2bbbc931e98ebbc5a3871701
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 0.3.7
|
4
|
+
|
5
|
+
- Fix converting nested headers
|
6
|
+
|
7
|
+
## Version 0.3.6
|
8
|
+
|
9
|
+
- Fix converting nested numbered list.
|
10
|
+
|
11
|
+
## Version 0.3.5
|
12
|
+
|
13
|
+
- Convert `br` element when converting HTML documents.
|
14
|
+
|
15
|
+
## Version 0.3.4
|
16
|
+
|
17
|
+
- Convert `strong` and `em` elements when converting HTML documents.
|
18
|
+
|
3
19
|
## Version 0.3.3
|
4
20
|
|
5
21
|
- Renable converting xml comments
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Kramdown Prismic
|
1
|
+
# Kramdown Prismic  [](https://rubygems.org/gems/kramdown-prismic)
|
2
2
|
|
3
3
|
A [Kramdown][] parser and converter to convert documents into [prismic][] rich text format and the other way around.
|
4
4
|
|
@@ -40,10 +40,14 @@ module Kramdown
|
|
40
40
|
if child.children.size > 1
|
41
41
|
warning('images inside content will be moved to the top level and may be rendered differently')
|
42
42
|
end
|
43
|
-
elsif element.type
|
43
|
+
elsif [:ul, :ol].include?(element.type)
|
44
44
|
warning('nested list moved to the top level')
|
45
45
|
elements << element
|
46
46
|
extract_non_nestable_elements(element, elements)
|
47
|
+
elsif element.type == :header
|
48
|
+
warning('header moved to the top level')
|
49
|
+
elements << element
|
50
|
+
extract_non_nestable_elements(element, elements)
|
47
51
|
else
|
48
52
|
memo << element
|
49
53
|
extract_non_nestable_elements(element, elements)
|
@@ -110,6 +114,7 @@ module Kramdown
|
|
110
114
|
end
|
111
115
|
|
112
116
|
def convert_hr(element); end
|
117
|
+
def convert_br(element); end
|
113
118
|
|
114
119
|
def convert_img(element)
|
115
120
|
{
|
@@ -148,6 +153,23 @@ module Kramdown
|
|
148
153
|
}
|
149
154
|
end
|
150
155
|
|
156
|
+
def convert_strong(element)
|
157
|
+
convert_sub_html_element(element, 'strong')
|
158
|
+
end
|
159
|
+
|
160
|
+
def convert_em(element)
|
161
|
+
convert_sub_html_element(element, 'em')
|
162
|
+
end
|
163
|
+
|
164
|
+
def convert_sub_html_element(element, type)
|
165
|
+
content = extract_content(element)
|
166
|
+
content[:spans].push({ type: type, start: 0, end: content[:text].size })
|
167
|
+
{
|
168
|
+
type: 'paragraph',
|
169
|
+
content: content
|
170
|
+
}
|
171
|
+
end
|
172
|
+
|
151
173
|
def convert_html_element(element)
|
152
174
|
if element.value == 'iframe'
|
153
175
|
{
|
data/test/converter_test.rb
CHANGED
@@ -132,6 +132,26 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
132
132
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
133
133
|
end
|
134
134
|
|
135
|
+
def test_convert_html_strong
|
136
|
+
expected = [
|
137
|
+
{
|
138
|
+
type: 'paragraph',
|
139
|
+
content: {
|
140
|
+
text: 'This is a paragraph',
|
141
|
+
spans: [
|
142
|
+
{
|
143
|
+
type: 'strong',
|
144
|
+
start: 0,
|
145
|
+
end: 19
|
146
|
+
}
|
147
|
+
]
|
148
|
+
}
|
149
|
+
}
|
150
|
+
]
|
151
|
+
markdown = '<strong>This is a paragraph</strong>'
|
152
|
+
assert_equal expected, Kramdown::Document.new(markdown, input: :html).to_prismic
|
153
|
+
end
|
154
|
+
|
135
155
|
def test_convert_paragraph_with_em
|
136
156
|
expected = [
|
137
157
|
{
|
@@ -152,6 +172,26 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
152
172
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
153
173
|
end
|
154
174
|
|
175
|
+
def test_convert_html_em
|
176
|
+
expected = [
|
177
|
+
{
|
178
|
+
type: 'paragraph',
|
179
|
+
content: {
|
180
|
+
text: 'This',
|
181
|
+
spans: [
|
182
|
+
{
|
183
|
+
type: 'em',
|
184
|
+
start: 0,
|
185
|
+
end: 4
|
186
|
+
}
|
187
|
+
]
|
188
|
+
}
|
189
|
+
}
|
190
|
+
]
|
191
|
+
markdown = '<em>This</em>'
|
192
|
+
assert_equal expected, Kramdown::Document.new(markdown, input: :html).to_prismic
|
193
|
+
end
|
194
|
+
|
155
195
|
def test_convert_list_o
|
156
196
|
expected = [
|
157
197
|
{
|
@@ -229,6 +269,29 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
229
269
|
assert_equal 1, doc.warnings.size
|
230
270
|
end
|
231
271
|
|
272
|
+
def test_convert_nested_ol
|
273
|
+
expected = [
|
274
|
+
{
|
275
|
+
type: 'list-item',
|
276
|
+
content: {
|
277
|
+
text: "item1\n",
|
278
|
+
spans: []
|
279
|
+
}
|
280
|
+
},
|
281
|
+
{
|
282
|
+
type: 'o-list-item',
|
283
|
+
content: {
|
284
|
+
text: 'item2',
|
285
|
+
spans: []
|
286
|
+
}
|
287
|
+
}
|
288
|
+
]
|
289
|
+
markdown = "- item1\n 1. item2"
|
290
|
+
doc = Kramdown::Document.new(markdown, input: :markdown)
|
291
|
+
assert_equal expected, doc.to_prismic
|
292
|
+
assert_equal 1, doc.warnings.size
|
293
|
+
end
|
294
|
+
|
232
295
|
def test_convert_nested_nested_ul
|
233
296
|
expected = [
|
234
297
|
{
|
@@ -259,6 +322,29 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
259
322
|
assert_equal 2, doc.warnings.size
|
260
323
|
end
|
261
324
|
|
325
|
+
def test_convert_heading_in_list
|
326
|
+
expected = [
|
327
|
+
{
|
328
|
+
type: 'list-item',
|
329
|
+
content: {
|
330
|
+
text: "",
|
331
|
+
spans: []
|
332
|
+
}
|
333
|
+
},
|
334
|
+
{
|
335
|
+
type: 'heading4',
|
336
|
+
content: {
|
337
|
+
text: 'Title',
|
338
|
+
spans: []
|
339
|
+
}
|
340
|
+
}
|
341
|
+
]
|
342
|
+
html = "<ul><li><h4>Title</h4></li></ul>"
|
343
|
+
doc = Kramdown::Document.new(html, input: :html)
|
344
|
+
assert_equal expected, doc.to_prismic
|
345
|
+
assert_equal 1, doc.warnings.size
|
346
|
+
end
|
347
|
+
|
262
348
|
def test_convert_preformatted
|
263
349
|
expected = [
|
264
350
|
{
|
@@ -475,6 +561,20 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
475
561
|
assert_equal expected, Kramdown::Document.new(html, input: :html).to_prismic
|
476
562
|
end
|
477
563
|
|
564
|
+
def test_convert_br_in_root_element
|
565
|
+
expected = [
|
566
|
+
{
|
567
|
+
type: 'paragraph',
|
568
|
+
content: {
|
569
|
+
text: "Test\n",
|
570
|
+
spans: []
|
571
|
+
}
|
572
|
+
}
|
573
|
+
]
|
574
|
+
html = '<br><p>Test<br></p>'
|
575
|
+
assert_equal expected, Kramdown::Document.new(html, input: :html).to_prismic
|
576
|
+
end
|
577
|
+
|
478
578
|
def test_convert_html_with_no_tags
|
479
579
|
expected = [
|
480
580
|
{
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kramdown-prismic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- François de Metz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|