kramdown-prismic 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 6528bd7b5eab9c6cb2d3b777a4c6b24785bfbf71
4
- data.tar.gz: 9851247bafd3d8e18030657fe4dad10c4a0ca3ef
3
+ metadata.gz: f359eb669c8df2396663e3178ea8b6f50be0df3e
4
+ data.tar.gz: 9b554b3ee7712f1f031dfef0e4ff50d3e28a40e9
5
5
  SHA512:
6
- metadata.gz: fc5bed50cbee721945804e15f38116561b97d873736f85308e11d0772535c8a32c4a5822165295440d8933fc1e42f7122f433aba2d2b00449cab4501214113b2
7
- data.tar.gz: 1ea9592644dd399893061a7cc53592d7aab77153045b58ee3f2a636dc68a731c63831f5e1f934f8d8fdca45278b74e343e849da2d4b031031b6eff997ee284a1
6
+ metadata.gz: 7824f29f541ece46868bdfaf577e152072de425619e92a721c974c9bfc01da7bb8f254362c0a05ed3a4ac826e0a29ecaf6979fffef56df68cc35b9485e05b3f4
7
+ data.tar.gz: 4136cd39ff0b11f6c5bfe7357d9a63a3b7d173f12006317d83d70fd42b8ac2ed90e82f11677f5e423936faf3e14de5d0aaaaed35f04b90fe7a870e2f076b9970
data/README.md CHANGED
@@ -15,7 +15,7 @@ TODO:
15
15
  - [x] heading5
16
16
  - [x] heading6
17
17
  - [x] paragraph
18
- - [ ] preformatted
18
+ - [x] preformatted
19
19
  - [x] strong
20
20
  - [x] em
21
21
  - [x] hyperlink
@@ -26,10 +26,31 @@ TODO:
26
26
 
27
27
  ## Difference between markdown and rich text
28
28
 
29
- | Markdown | Prismic |
30
- |--------------|----------------------------|
31
- | Blockquote | translated to preformatted |
32
- | hr | nothing |
29
+ | Markdown | Prismic |
30
+ |------------------|----------------------------|
31
+ | Blockquote | translated to preformatted |
32
+ | hr | nothing |
33
+ | img | moved to to level |
34
+ | dl | |
35
+ | dt | |
36
+ | dl | |
37
+ | table | |
38
+ | thead | |
39
+ | tobdy | |
40
+ | tfoot | |
41
+ | tr | |
42
+ | td | |
43
+ | math | |
44
+ | footnote | |
45
+ | entity | |
46
+ | typographic_sym | |
47
+ | smart_quote | |
48
+ | abbreviation | |
49
+ | html_element | |
50
+ | xml_comment | |
51
+ | xml_pi | |
52
+ | comment | |
53
+ | raw | |
33
54
 
34
55
  ## Install
35
56
 
@@ -4,13 +4,31 @@ module Kramdown
4
4
  module Converter
5
5
  class Prismic < Base
6
6
  def convert(root)
7
- root.children.map { |child|
7
+ move_img_to_top_level(root).map { |child|
8
8
  convert_element(child)
9
9
  }.compact.flatten
10
10
  end
11
11
 
12
12
  private
13
13
 
14
+ def move_img_to_top_level(root)
15
+ root.children.map do |child|
16
+ imgs = find_imgs(child)
17
+ [child, imgs]
18
+ end.flatten.compact
19
+ end
20
+
21
+ def find_imgs(child)
22
+ child.children.map do |element|
23
+ if element.type == :img
24
+ child.children.slice!(child.children.find_index(element))
25
+ element
26
+ else
27
+ find_imgs(element)
28
+ end
29
+ end
30
+ end
31
+
14
32
  def convert_element(element)
15
33
  send("convert_#{element.type}", element)
16
34
  end
@@ -73,6 +91,19 @@ module Kramdown
73
91
  def convert_hr(element)
74
92
  end
75
93
 
94
+ def convert_img(element)
95
+ {
96
+ type: 'image',
97
+ content: {
98
+ text: '',
99
+ spans: []
100
+ },
101
+ data: {
102
+ url: element.attr["src"]
103
+ }
104
+ }
105
+ end
106
+
76
107
  def extract_content(element, memo={text: '', spans: []})
77
108
  element.children.inject(memo) do |memo2, child|
78
109
  send("extract_span_#{child.type}", child, memo2)
@@ -1,3 +1,3 @@
1
1
  module KramdownPrismic
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -240,4 +240,28 @@ class KramdownPrismicTest < Minitest::Test
240
240
  markdown = "---"
241
241
  assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
242
242
  end
243
+
244
+ def test_convert_img
245
+ expected = [
246
+ {
247
+ type: "paragraph",
248
+ content: {
249
+ text: "",
250
+ spans: []
251
+ }
252
+ },
253
+ {
254
+ type: "image",
255
+ content: {
256
+ text: "",
257
+ spans: []
258
+ },
259
+ data: {
260
+ url: '/img.png'
261
+ }
262
+ }
263
+ ]
264
+ markdown = "![](/img.png)"
265
+ assert_equal expected, Kramdown::Document.new(markdown).to_prismic
266
+ end
243
267
  end
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.0.1
4
+ version: 0.0.2
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: 2017-10-27 00:00:00.000000000 Z
11
+ date: 2017-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown