kramdown-prismic 0.3.6 → 0.3.9

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: f68acd9978784949a29e81dc9109f155a5aaa3fbe278142a48b5ea0d667f327b
4
- data.tar.gz: eabfc7d18d6ad918f14645d8988d818f27dee74d885ac2e5d22241f633fbc43b
3
+ metadata.gz: 76a75c9530dc6b9336112a445b9fc4cd811e17059e4677c2094c1b22b585fa06
4
+ data.tar.gz: 77315988401b9fc306026b3d6a1b9d184b2a92a579fddd2871ba27dbc4000292
5
5
  SHA512:
6
- metadata.gz: f98e7ec71902a5b7314a978ccae442d2eda5922e69a8217cc6fefcb78c33c19db41244901e50c8fa31517ee468ca62625ffaff987ef683e81532d9cdd2cafe1d
7
- data.tar.gz: 7246ec24dd0a0d96b0f736c9f08e0d4c7a8477af0d920091091c8cfee817fb350aeace1175bc33dc7776770c3737fe96054baed3299733c9be4d75af1a3dbf13
6
+ metadata.gz: 576fc16369c963b6a1215e834dd72e88231177773cd2e62cfba973f4ae59288a508965db55759b214aebab1a0239c0b8d067b9e4a95a861ef7be6c002b3434d3
7
+ data.tar.gz: c6cd045fa16db194a3f6e3e78fc8cf2c86029e68e8a3b6194140c4f9c08f9db12f92ce0c1abd9b4ef391fc57112a34daac0166b6f5e14378178f7ab852466431
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 0.3.9
4
+
5
+ - Convert the target attribute on links
6
+
7
+ ## Version 0.3.8
8
+
9
+ - Convert nested html_elements when converting from HTML.
10
+
11
+ ## Version 0.3.7
12
+
13
+ - Fix converting nested headers
14
+
3
15
  ## Version 0.3.6
4
16
 
5
17
  - Fix converting nested numbered list.
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kramdown-prismic (0.3.6)
4
+ kramdown-prismic (0.3.9)
5
5
  kramdown (>= 1, < 3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- kramdown (2.3.1)
10
+ kramdown (2.4.0)
11
11
  rexml
12
12
  minitest (5.10.3)
13
13
  rake (13.0.6)
@@ -44,6 +44,10 @@ module Kramdown
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)
@@ -245,10 +249,12 @@ module Kramdown
245
249
  end
246
250
 
247
251
  def extract_span_a(element, memo)
252
+ target = element.attr['target']
248
253
  insert_span(element, memo, {
249
254
  type: 'hyperlink',
250
255
  data: {
251
- url: element.attr['href']
256
+ url: element.attr['href'],
257
+ **(target ? { target: target } : {}),
252
258
  }
253
259
  })
254
260
  end
@@ -278,8 +284,12 @@ module Kramdown
278
284
  memo[:text] += element.value
279
285
  end
280
286
 
281
- def extract_span_html_element(_element, _memo)
282
- warning('translating html elements is not supported')
287
+ def extract_span_html_element(element, memo)
288
+ if respond_to?("extract_span_#{element.value}", true)
289
+ send("extract_span_#{element.value}", element, memo)
290
+ else
291
+ warning("translating html element '#{element.value}' is not supported")
292
+ end
283
293
  end
284
294
 
285
295
  def extract_span_footnote(_element, _memo)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KramdownPrismic
4
- VERSION = '0.3.6'
4
+ VERSION = '0.3.9'
5
5
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'minitest/autorun'
@@ -322,6 +321,29 @@ class KramdownPrismicConverterTest < Minitest::Test
322
321
  assert_equal 2, doc.warnings.size
323
322
  end
324
323
 
324
+ def test_convert_heading_in_list
325
+ expected = [
326
+ {
327
+ type: 'list-item',
328
+ content: {
329
+ text: "",
330
+ spans: []
331
+ }
332
+ },
333
+ {
334
+ type: 'heading4',
335
+ content: {
336
+ text: 'Title',
337
+ spans: []
338
+ }
339
+ }
340
+ ]
341
+ html = "<ul><li><h4>Title</h4></li></ul>"
342
+ doc = Kramdown::Document.new(html, input: :html)
343
+ assert_equal expected, doc.to_prismic
344
+ assert_equal 1, doc.warnings.size
345
+ end
346
+
325
347
  def test_convert_preformatted
326
348
  expected = [
327
349
  {
@@ -553,11 +575,16 @@ class KramdownPrismicConverterTest < Minitest::Test
553
575
  end
554
576
 
555
577
  def test_convert_html_with_no_tags
578
+ expected_text = if Gem::Version.new(Kramdown::VERSION) >= Gem::Version.new("2.3.2")
579
+ "Test "
580
+ else
581
+ "Test\n"
582
+ end
556
583
  expected = [
557
584
  {
558
585
  type: 'paragraph',
559
586
  content: {
560
- text: "Test\n",
587
+ text: expected_text,
561
588
  spans: []
562
589
  }
563
590
  }
@@ -585,6 +612,21 @@ class KramdownPrismicConverterTest < Minitest::Test
585
612
  assert_equal expected, doc.to_prismic
586
613
  end
587
614
 
615
+ def test_convert_link
616
+ expected = [
617
+ {
618
+ type: 'paragraph',
619
+ content: {
620
+ text: 'Test',
621
+ spans: [{type: 'hyperlink', data: {url: 'http://example.net', target: '_blank'}, start: 0, end: 4}]
622
+ }
623
+ }
624
+ ]
625
+ html = '<a href="http://example.net" target="_blank">Test</a>'
626
+ doc = Kramdown::Document.new(html, input: :markdown)
627
+ assert_equal expected, doc.to_prismic
628
+ end
629
+
588
630
  def test_convert_html
589
631
  expected = []
590
632
  html = '<div></div>'
@@ -593,12 +635,34 @@ class KramdownPrismicConverterTest < Minitest::Test
593
635
  assert_equal 1, doc.warnings.size
594
636
  end
595
637
 
596
- def test_convert_span_html
638
+ def test_convert_span_html_strong
597
639
  expected = [
598
640
  {
599
641
  type: 'paragraph',
600
642
  content: {
601
- text: '',
643
+ text: 'This is a paragraph',
644
+ spans: [
645
+ {
646
+ type: 'strong',
647
+ start: 10,
648
+ end: 20
649
+ }
650
+ ]
651
+ }
652
+ }
653
+ ]
654
+ html = '<p>This is a <strong> paragraph</strong></p>'
655
+ doc = Kramdown::Document.new(html, input: :html)
656
+ assert_equal expected, doc.to_prismic
657
+ assert_equal 0, doc.warnings.size
658
+ end
659
+
660
+ def test_convert_span_html_br
661
+ expected = [
662
+ {
663
+ type: 'paragraph',
664
+ content: {
665
+ text: "\n",
602
666
  spans: []
603
667
  }
604
668
  }
@@ -606,7 +670,24 @@ class KramdownPrismicConverterTest < Minitest::Test
606
670
  html = '<br>'
607
671
  doc = Kramdown::Document.new(html, input: :markdown)
608
672
  assert_equal expected, doc.to_prismic
673
+ assert_equal 0, doc.warnings.size
674
+ end
675
+
676
+ def test_convert_span_html_unknown
677
+ expected = [
678
+ {
679
+ type: 'paragraph',
680
+ content: {
681
+ text: 'This is a ',
682
+ spans: []
683
+ }
684
+ }
685
+ ]
686
+ html = '<p>This is a <details>detail</details></p>'
687
+ doc = Kramdown::Document.new(html, input: :html)
688
+ assert_equal expected, doc.to_prismic
609
689
  assert_equal 1, doc.warnings.size
690
+ assert_equal "translating html element 'details' is not supported", doc.warnings.first
610
691
  end
611
692
 
612
693
  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.6
4
+ version: 0.3.9
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-10-09 00:00:00.000000000 Z
11
+ date: 2022-05-08 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.0.3
110
+ rubygems_version: 3.1.4
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: A Kramdown converter to convert documents into prismic rich text format and