kramdown-prismic 0.3.5 → 0.3.8
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 +12 -0
- data/Gemfile.lock +2 -2
- data/lib/kramdown/converter/prismic.rb +11 -3
- data/lib/kramdown-prismic/version.rb +1 -1
- data/test/converter_test.rb +93 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7a99099eccb44fd82519a9894193733e143af6fbe445a88db2f805cb44fd58d
|
4
|
+
data.tar.gz: 68f3628a12418f3b49db676257266100c54a8a5962e88c5a5dd38bae7ac33ec5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c98ec156b50ac771e18415a770068c2a84911d34fe2b2fe083c7eab4a3f0e311d0aad0a71ed625e4a4d85da49fb6f9cb612f317a2a87814dbca93505cb2a977
|
7
|
+
data.tar.gz: 65f6a3250e46ec0e6d256fa42cebd6feb5036ca4564ee5d3ff172bf911a7b520119451fec8bde608108f57d79850b3a7a7619adc29a4119b61553ba91d59d08a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 0.3.8
|
4
|
+
|
5
|
+
- Convert nested html_elements when converting from HTML.
|
6
|
+
|
7
|
+
## Version 0.3.7
|
8
|
+
|
9
|
+
- Fix converting nested headers
|
10
|
+
|
11
|
+
## Version 0.3.6
|
12
|
+
|
13
|
+
- Fix converting nested numbered list.
|
14
|
+
|
3
15
|
## Version 0.3.5
|
4
16
|
|
5
17
|
- Convert `br` element when converting HTML documents.
|
data/Gemfile.lock
CHANGED
@@ -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)
|
@@ -278,8 +282,12 @@ module Kramdown
|
|
278
282
|
memo[:text] += element.value
|
279
283
|
end
|
280
284
|
|
281
|
-
def extract_span_html_element(
|
282
|
-
|
285
|
+
def extract_span_html_element(element, memo)
|
286
|
+
if respond_to?("extract_span_#{element.value}", true)
|
287
|
+
send("extract_span_#{element.value}", element, memo)
|
288
|
+
else
|
289
|
+
warning("translating html element '#{element.value}' is not supported")
|
290
|
+
end
|
283
291
|
end
|
284
292
|
|
285
293
|
def extract_span_footnote(_element, _memo)
|
data/test/converter_test.rb
CHANGED
@@ -269,6 +269,29 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
269
269
|
assert_equal 1, doc.warnings.size
|
270
270
|
end
|
271
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
|
+
|
272
295
|
def test_convert_nested_nested_ul
|
273
296
|
expected = [
|
274
297
|
{
|
@@ -299,6 +322,29 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
299
322
|
assert_equal 2, doc.warnings.size
|
300
323
|
end
|
301
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
|
+
|
302
348
|
def test_convert_preformatted
|
303
349
|
expected = [
|
304
350
|
{
|
@@ -530,11 +576,16 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
530
576
|
end
|
531
577
|
|
532
578
|
def test_convert_html_with_no_tags
|
579
|
+
expected_text = if Gem::Version.new(Kramdown::VERSION) >= Gem::Version.new("2.3.2")
|
580
|
+
"Test "
|
581
|
+
else
|
582
|
+
"Test\n"
|
583
|
+
end
|
533
584
|
expected = [
|
534
585
|
{
|
535
586
|
type: 'paragraph',
|
536
587
|
content: {
|
537
|
-
text:
|
588
|
+
text: expected_text,
|
538
589
|
spans: []
|
539
590
|
}
|
540
591
|
}
|
@@ -570,12 +621,34 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
570
621
|
assert_equal 1, doc.warnings.size
|
571
622
|
end
|
572
623
|
|
573
|
-
def
|
624
|
+
def test_convert_span_html_strong
|
574
625
|
expected = [
|
575
626
|
{
|
576
627
|
type: 'paragraph',
|
577
628
|
content: {
|
578
|
-
text: '',
|
629
|
+
text: 'This is a paragraph',
|
630
|
+
spans: [
|
631
|
+
{
|
632
|
+
type: 'strong',
|
633
|
+
start: 10,
|
634
|
+
end: 20
|
635
|
+
}
|
636
|
+
]
|
637
|
+
}
|
638
|
+
}
|
639
|
+
]
|
640
|
+
html = '<p>This is a <strong> paragraph</strong></p>'
|
641
|
+
doc = Kramdown::Document.new(html, input: :html)
|
642
|
+
assert_equal expected, doc.to_prismic
|
643
|
+
assert_equal 0, doc.warnings.size
|
644
|
+
end
|
645
|
+
|
646
|
+
def test_convert_span_html_br
|
647
|
+
expected = [
|
648
|
+
{
|
649
|
+
type: 'paragraph',
|
650
|
+
content: {
|
651
|
+
text: "\n",
|
579
652
|
spans: []
|
580
653
|
}
|
581
654
|
}
|
@@ -583,7 +656,24 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
583
656
|
html = '<br>'
|
584
657
|
doc = Kramdown::Document.new(html, input: :markdown)
|
585
658
|
assert_equal expected, doc.to_prismic
|
659
|
+
assert_equal 0, doc.warnings.size
|
660
|
+
end
|
661
|
+
|
662
|
+
def test_convert_span_html_unknown
|
663
|
+
expected = [
|
664
|
+
{
|
665
|
+
type: 'paragraph',
|
666
|
+
content: {
|
667
|
+
text: 'This is a ',
|
668
|
+
spans: []
|
669
|
+
}
|
670
|
+
}
|
671
|
+
]
|
672
|
+
html = '<p>This is a <details>detail</details></p>'
|
673
|
+
doc = Kramdown::Document.new(html, input: :html)
|
674
|
+
assert_equal expected, doc.to_prismic
|
586
675
|
assert_equal 1, doc.warnings.size
|
676
|
+
assert_equal "translating html element 'details' is not supported", doc.warnings.first
|
587
677
|
end
|
588
678
|
|
589
679
|
def test_convert_table
|
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.8
|
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:
|
11
|
+
date: 2022-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
|
-
rubygems_version: 3.
|
110
|
+
rubygems_version: 3.0.3
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: A Kramdown converter to convert documents into prismic rich text format and
|