kramdown-prismic 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{Changelog.md → CHANGELOG.md} +5 -0
- data/Gemfile +2 -0
- data/README.md +19 -2
- data/Rakefile +3 -2
- data/bin/html2prismic +6 -0
- data/bin/markdown2prismic +6 -0
- data/bin/prismic2markdown +8 -0
- data/kramdown-prismic.gemspec +12 -8
- data/kramdown1.gemfile +2 -0
- data/kramdown2.gemfile +2 -0
- data/lib/kramdown-prismic.rb +2 -0
- data/lib/kramdown-prismic/version.rb +3 -1
- data/lib/kramdown/converter/prismic.rb +55 -30
- data/lib/kramdown/parser/prismic.rb +19 -19
- data/test/converter_test.rb +144 -106
- data/test/parser_test.rb +41 -52
- metadata +10 -5
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e34361d43f02e8ee666fb78685a040128617accc25d44221ed0f98e45fcc7eae
|
4
|
+
data.tar.gz: 58ceb9f450d5d719b3698dcc37d417d27f6ecff3a8873812426a086bb6296695
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdd15d2fe0bb82ab3528f818579efe067f82274727c4f59ec262e899ca44224aa18b3c766f73f7c82396a8d803c93d9d92cfd864c4c24587a2743297cc60e0e1
|
7
|
+
data.tar.gz: 4cc36e4dbba12aaad5318267b268773a7010481959f9a4df4ddafaa3fc912cb9bb8830f4ac7fc8709e0c7b38c6ba2fc6a84a3436754c5d044ec4a7ab5be4646e
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Kramdown Prismic
|
2
2
|
|
3
|
-
A [Kramdown][] parser and converter to convert documents into [prismic][] rich text format and
|
3
|
+
A [Kramdown][] parser and converter to convert documents into [prismic][] rich text format and the other way around.
|
4
4
|
|
5
|
-
A useful usage is to convert markdown documents to prismic for import purpose. Then you can even convert prismic format back to markdown.
|
5
|
+
A useful usage is to convert markdown documents to prismic for [import purpose][prismic-import]. Then you can even convert prismic format back to markdown.
|
6
6
|
|
7
7
|
## Status
|
8
8
|
|
@@ -18,6 +18,22 @@ gem 'kramdown-prismic', '~> 0.1'
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
### With executables
|
22
|
+
|
23
|
+
*markdown2prismic*:
|
24
|
+
|
25
|
+
markdown2prismic $'# My Title\n\nHello world'
|
26
|
+
|
27
|
+
*html2prismic*:
|
28
|
+
|
29
|
+
html2prismic '<h1>My Title</h1><p>Hello world</p>'
|
30
|
+
|
31
|
+
*prismic2markdown*:
|
32
|
+
|
33
|
+
prismic2markdown '[{"type":"heading1","content":{"text":"My Title","spans":[]}},{"type":"paragraph","content":{"text":"Test","spans":[]}}]'
|
34
|
+
|
35
|
+
### As a library
|
36
|
+
|
21
37
|
**Convert kramdown documents to Prismic**
|
22
38
|
|
23
39
|
```ruby
|
@@ -123,3 +139,4 @@ MIT
|
|
123
139
|
|
124
140
|
[Kramdown]: https://kramdown.gettalong.org/
|
125
141
|
[prismic]: https://prismic.io/
|
142
|
+
[prismic-import]: https://prismic.io/docs/core-concepts/how-to-import-content
|
data/Rakefile
CHANGED
data/bin/html2prismic
ADDED
data/kramdown-prismic.gemspec
CHANGED
@@ -1,21 +1,25 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path('lib/kramdown-prismic/version', __dir__)
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
5
6
|
s.name = 'kramdown-prismic'
|
6
7
|
s.version = KramdownPrismic::VERSION
|
7
|
-
s.summary =
|
8
|
-
s.description =
|
9
|
-
s.authors = [
|
8
|
+
s.summary = 'A Kramdown converter to convert documents into prismic rich text format and the other way around.'
|
9
|
+
s.description = 'A Kramdown converter to convert documents into prismic rich text format and the other way around.'
|
10
|
+
s.authors = ['François de Metz']
|
10
11
|
s.email = 'francois@2metz.fr'
|
11
12
|
|
13
|
+
s.executables << 'markdown2prismic'
|
14
|
+
s.executables << 'html2prismic'
|
15
|
+
s.executables << 'prismic2markdown'
|
12
16
|
s.files = `git ls-files`.split("\n")
|
13
17
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
14
18
|
|
15
19
|
s.homepage = 'https://github.com/stormz/kramdown-prismic'
|
16
20
|
s.license = 'MIT'
|
17
21
|
|
18
|
-
s.add_dependency
|
19
|
-
s.add_development_dependency
|
20
|
-
s.add_development_dependency
|
22
|
+
s.add_dependency 'kramdown', '>= 1', '< 3'
|
23
|
+
s.add_development_dependency 'minitest', '~> 5.0'
|
24
|
+
s.add_development_dependency 'rake', '~> 13.0'
|
21
25
|
end
|
data/kramdown1.gemfile
CHANGED
data/kramdown2.gemfile
CHANGED
data/lib/kramdown-prismic.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'kramdown/converter/base'
|
2
4
|
|
3
5
|
module Kramdown
|
4
6
|
module Converter
|
5
7
|
class Prismic < Base
|
6
8
|
def convert(root)
|
7
|
-
cleanup_ast(root).map
|
9
|
+
cleanup_ast(root).map do |child|
|
8
10
|
convert_element(child)
|
9
|
-
|
11
|
+
end.compact.flatten
|
10
12
|
end
|
11
13
|
|
12
14
|
private
|
@@ -21,22 +23,23 @@ module Kramdown
|
|
21
23
|
end
|
22
24
|
|
23
25
|
def remove_blanks(root)
|
24
|
-
root.children = root.children.
|
26
|
+
root.children = root.children.each_with_object([]) do |child, memo|
|
25
27
|
unless child.type == :blank
|
26
28
|
remove_blanks(child)
|
27
29
|
memo << child
|
28
30
|
end
|
29
|
-
memo
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
33
34
|
def extract_non_nestable_elements(child, elements)
|
34
|
-
child.children = child.children.
|
35
|
-
if element.type == :a && element.children.size
|
35
|
+
child.children = child.children.each_with_object([]) do |element, memo|
|
36
|
+
if element.type == :a && element.children.size == 1 && element.children.first.type == :img
|
36
37
|
elements << element
|
37
38
|
elsif element.type == :img
|
38
39
|
elements << element
|
39
|
-
|
40
|
+
if child.children.size > 1
|
41
|
+
warning('images inside content will be moved to the top level and may be rendered differently')
|
42
|
+
end
|
40
43
|
elsif element.type == :ul
|
41
44
|
warning('nested list moved to the top level')
|
42
45
|
elements << element
|
@@ -45,7 +48,6 @@ module Kramdown
|
|
45
48
|
memo << element
|
46
49
|
extract_non_nestable_elements(element, elements)
|
47
50
|
end
|
48
|
-
memo
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -61,9 +63,10 @@ module Kramdown
|
|
61
63
|
end
|
62
64
|
|
63
65
|
def convert_p(element)
|
64
|
-
return nil if element.children.size
|
66
|
+
return nil if element.children.size.zero?
|
67
|
+
|
65
68
|
{
|
66
|
-
type:
|
69
|
+
type: 'paragraph',
|
67
70
|
content: extract_content(element)
|
68
71
|
}
|
69
72
|
end
|
@@ -106,8 +109,7 @@ module Kramdown
|
|
106
109
|
}
|
107
110
|
end
|
108
111
|
|
109
|
-
def convert_hr(element)
|
110
|
-
end
|
112
|
+
def convert_hr(element); end
|
111
113
|
|
112
114
|
def convert_img(element)
|
113
115
|
{
|
@@ -118,9 +120,9 @@ module Kramdown
|
|
118
120
|
},
|
119
121
|
data: {
|
120
122
|
origin: {
|
121
|
-
url: element.attr[
|
123
|
+
url: element.attr['src']
|
122
124
|
},
|
123
|
-
alt: element.attr[
|
125
|
+
alt: element.attr['alt']
|
124
126
|
}
|
125
127
|
}
|
126
128
|
end
|
@@ -147,39 +149,62 @@ module Kramdown
|
|
147
149
|
end
|
148
150
|
|
149
151
|
def convert_html_element(element)
|
150
|
-
|
151
|
-
|
152
|
+
if element.value == 'iframe'
|
153
|
+
{
|
154
|
+
content: {
|
155
|
+
spans: [],
|
156
|
+
text: ''
|
157
|
+
},
|
158
|
+
type: 'embed',
|
159
|
+
data: {
|
160
|
+
embed_url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
|
161
|
+
type: 'link'
|
162
|
+
}
|
163
|
+
}
|
164
|
+
else
|
165
|
+
warning('translating html elements is not supported')
|
166
|
+
nil
|
167
|
+
end
|
152
168
|
end
|
153
169
|
|
154
|
-
def convert_table(
|
170
|
+
def convert_table(_element)
|
155
171
|
warning('translating table is not supported')
|
156
172
|
nil
|
157
173
|
end
|
158
174
|
|
159
|
-
def convert_dl(
|
175
|
+
def convert_dl(_element)
|
160
176
|
warning('translating dl is not supported')
|
161
177
|
nil
|
162
178
|
end
|
163
179
|
|
164
|
-
def convert_math(
|
180
|
+
def convert_math(_element)
|
165
181
|
warning('translating math is not supported')
|
166
182
|
nil
|
167
183
|
end
|
168
184
|
|
169
|
-
def convert_comment(
|
185
|
+
def convert_comment(_element)
|
170
186
|
warning('translating comment is not supported')
|
171
187
|
nil
|
172
188
|
end
|
173
189
|
|
174
|
-
def convert_raw(
|
190
|
+
def convert_raw(_element)
|
175
191
|
warning('translating raw is not supported')
|
176
192
|
nil
|
177
193
|
end
|
178
194
|
|
179
|
-
def
|
180
|
-
|
195
|
+
def convert_text(element)
|
196
|
+
{
|
197
|
+
type: 'paragraph',
|
198
|
+
content: {
|
199
|
+
text: element.value,
|
200
|
+
spans: []
|
201
|
+
}
|
202
|
+
}
|
203
|
+
end
|
204
|
+
|
205
|
+
def extract_content(element, memo = { text: '', spans: [] })
|
206
|
+
element.children.each_with_object(memo) do |child, memo2|
|
181
207
|
send("extract_span_#{child.type}", child, memo2)
|
182
|
-
memo2
|
183
208
|
end
|
184
209
|
end
|
185
210
|
|
@@ -200,7 +225,7 @@ module Kramdown
|
|
200
225
|
insert_span(element, memo, {
|
201
226
|
type: 'hyperlink',
|
202
227
|
data: {
|
203
|
-
url: element.attr[
|
228
|
+
url: element.attr['href']
|
204
229
|
}
|
205
230
|
})
|
206
231
|
end
|
@@ -221,7 +246,7 @@ module Kramdown
|
|
221
246
|
extract_content(element, memo)
|
222
247
|
end
|
223
248
|
|
224
|
-
def extract_span_br(
|
249
|
+
def extract_span_br(_element, memo)
|
225
250
|
memo[:text] += "\n"
|
226
251
|
end
|
227
252
|
|
@@ -230,11 +255,11 @@ module Kramdown
|
|
230
255
|
memo[:text] += element.value
|
231
256
|
end
|
232
257
|
|
233
|
-
def extract_span_html_element(
|
258
|
+
def extract_span_html_element(_element, _memo)
|
234
259
|
warning('translating html elements is not supported')
|
235
260
|
end
|
236
261
|
|
237
|
-
def extract_span_footnote(
|
262
|
+
def extract_span_footnote(_element, _memo)
|
238
263
|
warning('translating footnote is not supported')
|
239
264
|
end
|
240
265
|
|
@@ -251,9 +276,9 @@ module Kramdown
|
|
251
276
|
raquo_space: [::Kramdown::Utils::Entities.entity('nbsp'), ::Kramdown::Utils::Entities.entity('raquo')],
|
252
277
|
laquo: [::Kramdown::Utils::Entities.entity('laquo')],
|
253
278
|
raquo: [::Kramdown::Utils::Entities.entity('raquo')]
|
254
|
-
}
|
279
|
+
}.freeze
|
255
280
|
def extract_span_typographic_sym(element, memo)
|
256
|
-
value = TYPOGRAPHIC_SYMS[element.value].map
|
281
|
+
value = TYPOGRAPHIC_SYMS[element.value].map(&:char).join('')
|
257
282
|
memo[:text] += value
|
258
283
|
end
|
259
284
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Kramdown
|
2
4
|
module Parser
|
3
5
|
class Prismic < Base
|
@@ -5,9 +7,7 @@ module Kramdown
|
|
5
7
|
@root.options[:encoding] = 'UTF-8'
|
6
8
|
@root.children = @source.map do |block|
|
7
9
|
type = block[:type]
|
8
|
-
if type.match(/heading/)
|
9
|
-
type = 'heading'
|
10
|
-
end
|
10
|
+
type = 'heading' if type.match(/heading/)
|
11
11
|
element = send("parse_#{type}", block)
|
12
12
|
parse_spans(element, block)
|
13
13
|
element
|
@@ -18,21 +18,21 @@ module Kramdown
|
|
18
18
|
|
19
19
|
def parse_heading(block)
|
20
20
|
level = block[:type].match(/heading([1-6])/)[1].to_i
|
21
|
-
Kramdown::Element.new(:header, nil, nil, {level: level, raw_text: ''})
|
21
|
+
Kramdown::Element.new(:header, nil, nil, { level: level, raw_text: '' })
|
22
22
|
end
|
23
23
|
|
24
|
-
def parse_paragraph(
|
24
|
+
def parse_paragraph(_block)
|
25
25
|
Kramdown::Element.new(:p)
|
26
26
|
end
|
27
27
|
|
28
28
|
def parse_image(block)
|
29
29
|
p = Kramdown::Element.new(:p)
|
30
|
-
img = Kramdown::Element.new(:img, nil, {
|
30
|
+
img = Kramdown::Element.new(:img, nil, { 'src' => block[:data][:origin][:url], 'alt' => block[:data][:alt] })
|
31
31
|
p.children << img
|
32
32
|
p
|
33
33
|
end
|
34
34
|
|
35
|
-
def parse_preformatted(
|
35
|
+
def parse_preformatted(_block)
|
36
36
|
Kramdown::Element.new(:blockquote)
|
37
37
|
end
|
38
38
|
|
@@ -44,11 +44,10 @@ module Kramdown
|
|
44
44
|
stack = []
|
45
45
|
|
46
46
|
(block[:content][:text].size + 1).times do |index|
|
47
|
-
|
48
47
|
starting_spans = find_starting_spans_for(block, index)
|
49
48
|
ending_spans = find_ending_spans_for(block, index)
|
50
49
|
|
51
|
-
ending_spans.each do |
|
50
|
+
ending_spans.each do |_ending_span|
|
52
51
|
el = stack.pop
|
53
52
|
if stack.empty?
|
54
53
|
element.children << el
|
@@ -57,22 +56,23 @@ module Kramdown
|
|
57
56
|
end
|
58
57
|
end
|
59
58
|
starting_spans.each do |starting_span|
|
60
|
-
stack << if starting_span[:type] ==
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
stack << if starting_span[:type] == 'hyperlink'
|
60
|
+
Element.new(:a, nil, { 'href' => starting_span[:data][:url] })
|
61
|
+
else
|
62
|
+
Element.new(starting_span[:type].to_sym)
|
63
|
+
end
|
65
64
|
end
|
66
65
|
|
67
66
|
char = block[:content][:text][index]
|
68
67
|
next if char.nil?
|
68
|
+
|
69
69
|
current_text = if stack.empty?
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
element.children.last
|
71
|
+
else
|
72
|
+
stack[-1].children.last
|
73
|
+
end
|
74
74
|
if current_text.nil? || current_text.type != :text
|
75
|
-
current_text = Element.new(:text,
|
75
|
+
current_text = Element.new(:text, '')
|
76
76
|
if stack.empty?
|
77
77
|
element.children << current_text
|
78
78
|
else
|
data/test/converter_test.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'minitest/autorun'
|
3
4
|
require 'kramdown-prismic'
|
4
5
|
|
@@ -9,12 +10,12 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
9
10
|
{
|
10
11
|
type: "heading#{heading + 1}",
|
11
12
|
content: {
|
12
|
-
text:
|
13
|
+
text: 'This is the document title',
|
13
14
|
spans: []
|
14
15
|
}
|
15
16
|
}
|
16
17
|
]
|
17
|
-
markdown = "#{
|
18
|
+
markdown = "#{'#' * (heading + 1)} This is the document title"
|
18
19
|
assert_equal expected, Kramdown::Document.new(markdown, input: :kramdown).to_prismic
|
19
20
|
end
|
20
21
|
end
|
@@ -22,26 +23,26 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
22
23
|
def test_convert_heading7
|
23
24
|
expected = [
|
24
25
|
{
|
25
|
-
type:
|
26
|
+
type: 'heading6',
|
26
27
|
content: {
|
27
|
-
text:
|
28
|
+
text: '# This is the document title',
|
28
29
|
spans: []
|
29
30
|
}
|
30
31
|
}
|
31
32
|
]
|
32
|
-
markdown =
|
33
|
+
markdown = '####### This is the document title'
|
33
34
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
34
35
|
end
|
35
36
|
|
36
37
|
def test_convert_heading_with_spans
|
37
38
|
expected = [
|
38
39
|
{
|
39
|
-
type:
|
40
|
+
type: 'heading2',
|
40
41
|
content: {
|
41
|
-
text:
|
42
|
+
text: 'This is a document title',
|
42
43
|
spans: [
|
43
44
|
{
|
44
|
-
type:
|
45
|
+
type: 'em',
|
45
46
|
start: 0,
|
46
47
|
end: 4
|
47
48
|
}
|
@@ -49,56 +50,56 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
49
50
|
}
|
50
51
|
}
|
51
52
|
]
|
52
|
-
markdown =
|
53
|
+
markdown = '## *This* is a document title'
|
53
54
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
54
55
|
end
|
55
56
|
|
56
57
|
def test_convert_paragraph
|
57
58
|
expected = [
|
58
59
|
{
|
59
|
-
type:
|
60
|
+
type: 'paragraph',
|
60
61
|
content: {
|
61
|
-
text:
|
62
|
+
text: 'This is a paragraph',
|
62
63
|
spans: []
|
63
64
|
}
|
64
65
|
}
|
65
66
|
]
|
66
|
-
markdown =
|
67
|
+
markdown = 'This is a paragraph'
|
67
68
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
68
69
|
end
|
69
70
|
|
70
71
|
def test_convert_paragraph_with_spans
|
71
72
|
expected = [
|
72
73
|
{
|
73
|
-
type:
|
74
|
+
type: 'paragraph',
|
74
75
|
content: {
|
75
|
-
text:
|
76
|
+
text: 'This is a paragraph',
|
76
77
|
spans: [
|
77
78
|
{
|
78
|
-
type:
|
79
|
+
type: 'hyperlink',
|
79
80
|
start: 0,
|
80
81
|
end: 19,
|
81
82
|
data: {
|
82
|
-
url:
|
83
|
+
url: 'https://prismic.io'
|
83
84
|
}
|
84
85
|
}
|
85
86
|
]
|
86
87
|
}
|
87
88
|
}
|
88
89
|
]
|
89
|
-
markdown =
|
90
|
+
markdown = '[This is a paragraph](https://prismic.io)'
|
90
91
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
91
92
|
end
|
92
93
|
|
93
94
|
def test_convert_paragraph_with_strong
|
94
95
|
expected = [
|
95
96
|
{
|
96
|
-
type:
|
97
|
+
type: 'paragraph',
|
97
98
|
content: {
|
98
|
-
text:
|
99
|
+
text: 'This is a paragraph',
|
99
100
|
spans: [
|
100
101
|
{
|
101
|
-
type:
|
102
|
+
type: 'strong',
|
102
103
|
start: 0,
|
103
104
|
end: 19
|
104
105
|
}
|
@@ -106,19 +107,19 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
106
107
|
}
|
107
108
|
}
|
108
109
|
]
|
109
|
-
markdown =
|
110
|
+
markdown = '**This is a paragraph**'
|
110
111
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
111
112
|
end
|
112
113
|
|
113
114
|
def test_convert_paragraph_with_strong2
|
114
115
|
expected = [
|
115
116
|
{
|
116
|
-
type:
|
117
|
+
type: 'paragraph',
|
117
118
|
content: {
|
118
|
-
text:
|
119
|
+
text: 'This is a paragraph',
|
119
120
|
spans: [
|
120
121
|
{
|
121
|
-
type:
|
122
|
+
type: 'strong',
|
122
123
|
start: 0,
|
123
124
|
end: 4
|
124
125
|
}
|
@@ -126,19 +127,19 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
126
127
|
}
|
127
128
|
}
|
128
129
|
]
|
129
|
-
markdown =
|
130
|
+
markdown = '**This** is a paragraph'
|
130
131
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
131
132
|
end
|
132
133
|
|
133
134
|
def test_convert_paragraph_with_em
|
134
135
|
expected = [
|
135
136
|
{
|
136
|
-
type:
|
137
|
+
type: 'paragraph',
|
137
138
|
content: {
|
138
|
-
text:
|
139
|
+
text: 'This is a paragraph',
|
139
140
|
spans: [
|
140
141
|
{
|
141
|
-
type:
|
142
|
+
type: 'em',
|
142
143
|
start: 0,
|
143
144
|
end: 4
|
144
145
|
}
|
@@ -146,19 +147,19 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
146
147
|
}
|
147
148
|
}
|
148
149
|
]
|
149
|
-
markdown =
|
150
|
+
markdown = '*This* is a paragraph'
|
150
151
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
151
152
|
end
|
152
153
|
|
153
154
|
def test_convert_list_o
|
154
155
|
expected = [
|
155
156
|
{
|
156
|
-
type:
|
157
|
+
type: 'o-list-item',
|
157
158
|
content: {
|
158
|
-
text:
|
159
|
+
text: 'This is a list item',
|
159
160
|
spans: [
|
160
161
|
{
|
161
|
-
type:
|
162
|
+
type: 'em',
|
162
163
|
start: 0,
|
163
164
|
end: 4
|
164
165
|
}
|
@@ -166,9 +167,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
166
167
|
}
|
167
168
|
},
|
168
169
|
{
|
169
|
-
type:
|
170
|
+
type: 'o-list-item',
|
170
171
|
content: {
|
171
|
-
text:
|
172
|
+
text: 'This is a second list item',
|
172
173
|
spans: []
|
173
174
|
}
|
174
175
|
}
|
@@ -180,12 +181,12 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
180
181
|
def test_convert_list_u
|
181
182
|
expected = [
|
182
183
|
{
|
183
|
-
type:
|
184
|
+
type: 'list-item',
|
184
185
|
content: {
|
185
|
-
text:
|
186
|
+
text: 'This is a list item',
|
186
187
|
spans: [
|
187
188
|
{
|
188
|
-
type:
|
189
|
+
type: 'em',
|
189
190
|
start: 0,
|
190
191
|
end: 4
|
191
192
|
}
|
@@ -193,9 +194,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
193
194
|
}
|
194
195
|
},
|
195
196
|
{
|
196
|
-
type:
|
197
|
+
type: 'list-item',
|
197
198
|
content: {
|
198
|
-
text:
|
199
|
+
text: 'This is a second list item',
|
199
200
|
spans: []
|
200
201
|
}
|
201
202
|
}
|
@@ -207,16 +208,16 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
207
208
|
def test_convert_nested_ul
|
208
209
|
expected = [
|
209
210
|
{
|
210
|
-
type:
|
211
|
+
type: 'list-item',
|
211
212
|
content: {
|
212
213
|
text: "item1\n",
|
213
214
|
spans: []
|
214
215
|
}
|
215
216
|
},
|
216
217
|
{
|
217
|
-
type:
|
218
|
+
type: 'list-item',
|
218
219
|
content: {
|
219
|
-
text:
|
220
|
+
text: 'item2',
|
220
221
|
spans: []
|
221
222
|
}
|
222
223
|
}
|
@@ -230,23 +231,23 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
230
231
|
def test_convert_nested_nested_ul
|
231
232
|
expected = [
|
232
233
|
{
|
233
|
-
type:
|
234
|
+
type: 'list-item',
|
234
235
|
content: {
|
235
236
|
text: "item1\n",
|
236
237
|
spans: []
|
237
238
|
}
|
238
239
|
},
|
239
240
|
{
|
240
|
-
type:
|
241
|
+
type: 'list-item',
|
241
242
|
content: {
|
242
243
|
text: "item2\n",
|
243
244
|
spans: []
|
244
245
|
}
|
245
246
|
},
|
246
247
|
{
|
247
|
-
type:
|
248
|
+
type: 'list-item',
|
248
249
|
content: {
|
249
|
-
text:
|
250
|
+
text: 'item3',
|
250
251
|
spans: []
|
251
252
|
}
|
252
253
|
}
|
@@ -260,7 +261,7 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
260
261
|
def test_convert_preformatted
|
261
262
|
expected = [
|
262
263
|
{
|
263
|
-
type:
|
264
|
+
type: 'preformatted',
|
264
265
|
content: {
|
265
266
|
text: "This is a pre block\n",
|
266
267
|
spans: []
|
@@ -274,9 +275,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
274
275
|
def test_convert_blockquote
|
275
276
|
expected = [
|
276
277
|
{
|
277
|
-
type:
|
278
|
+
type: 'preformatted',
|
278
279
|
content: {
|
279
|
-
text:
|
280
|
+
text: 'This is a blockquote',
|
280
281
|
spans: []
|
281
282
|
}
|
282
283
|
}
|
@@ -287,17 +288,18 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
287
288
|
|
288
289
|
def test_convert_empty
|
289
290
|
expected = []
|
290
|
-
markdown =
|
291
|
+
markdown = ''
|
291
292
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
292
293
|
end
|
293
294
|
|
294
295
|
def test_convert_span_blank
|
295
296
|
expected = [
|
296
|
-
{
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
297
|
+
{
|
298
|
+
type: 'o-list-item',
|
299
|
+
content: {
|
300
|
+
text: 'Testtest',
|
301
|
+
spans: []
|
302
|
+
}
|
301
303
|
}
|
302
304
|
]
|
303
305
|
markdown = "\n1. Test\n\n test\n"
|
@@ -306,16 +308,16 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
306
308
|
|
307
309
|
def test_convert_hr
|
308
310
|
expected = []
|
309
|
-
markdown =
|
311
|
+
markdown = '---'
|
310
312
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
311
313
|
end
|
312
314
|
|
313
315
|
def test_convert_img
|
314
316
|
expected = [
|
315
317
|
{
|
316
|
-
type:
|
318
|
+
type: 'image',
|
317
319
|
content: {
|
318
|
-
text:
|
320
|
+
text: '',
|
319
321
|
spans: []
|
320
322
|
},
|
321
323
|
data: {
|
@@ -326,7 +328,7 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
326
328
|
}
|
327
329
|
}
|
328
330
|
]
|
329
|
-
markdown =
|
331
|
+
markdown = '![alt text](/img.png)'
|
330
332
|
doc = Kramdown::Document.new(markdown)
|
331
333
|
assert_equal expected, doc.to_prismic
|
332
334
|
assert_equal 0, doc.warnings.size
|
@@ -335,9 +337,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
335
337
|
def test_convert_double_img
|
336
338
|
expected = [
|
337
339
|
{
|
338
|
-
type:
|
340
|
+
type: 'image',
|
339
341
|
content: {
|
340
|
-
text:
|
342
|
+
text: '',
|
341
343
|
spans: []
|
342
344
|
},
|
343
345
|
data: {
|
@@ -348,9 +350,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
348
350
|
}
|
349
351
|
},
|
350
352
|
{
|
351
|
-
type:
|
353
|
+
type: 'image',
|
352
354
|
content: {
|
353
|
-
text:
|
355
|
+
text: '',
|
354
356
|
spans: []
|
355
357
|
},
|
356
358
|
data: {
|
@@ -361,7 +363,7 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
361
363
|
}
|
362
364
|
}
|
363
365
|
]
|
364
|
-
markdown =
|
366
|
+
markdown = '![](/img.png)![](/img2.png)'
|
365
367
|
doc = Kramdown::Document.new(markdown)
|
366
368
|
assert_equal expected, doc.to_prismic
|
367
369
|
assert_equal 2, doc.warnings.size
|
@@ -370,9 +372,9 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
370
372
|
def test_convert_img_with_link
|
371
373
|
expected = [
|
372
374
|
{
|
373
|
-
type:
|
375
|
+
type: 'image',
|
374
376
|
content: {
|
375
|
-
text:
|
377
|
+
text: '',
|
376
378
|
spans: []
|
377
379
|
},
|
378
380
|
data: {
|
@@ -381,12 +383,12 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
381
383
|
},
|
382
384
|
alt: 'alt text',
|
383
385
|
linkTo: {
|
384
|
-
url:
|
386
|
+
url: 'https://example.net/'
|
385
387
|
}
|
386
388
|
}
|
387
389
|
}
|
388
390
|
]
|
389
|
-
markdown =
|
391
|
+
markdown = '[![alt text](/img.png)](https://example.net/)'
|
390
392
|
doc = Kramdown::Document.new(markdown)
|
391
393
|
assert_equal expected, doc.to_prismic
|
392
394
|
assert_equal 0, doc.warnings.size
|
@@ -395,29 +397,28 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
395
397
|
def test_convert_entity
|
396
398
|
expected = [
|
397
399
|
{
|
398
|
-
type:
|
400
|
+
type: 'paragraph',
|
399
401
|
content: {
|
400
402
|
text: "\u00a0",
|
401
403
|
spans: []
|
402
404
|
}
|
403
405
|
}
|
404
406
|
]
|
405
|
-
markdown =
|
407
|
+
markdown = ' '
|
406
408
|
assert_equal expected, Kramdown::Document.new(markdown, input: :markdown).to_prismic
|
407
409
|
end
|
408
410
|
|
409
|
-
[['mdash'
|
410
|
-
['ndash'
|
411
|
-
['hellip'
|
412
|
-
['laquo'
|
413
|
-
['raquo'
|
414
|
-
['laquo_space'
|
415
|
-
['raquo_space'
|
416
|
-
].each do |symbol|
|
411
|
+
[['mdash', ' ---', ' —'],
|
412
|
+
['ndash', ' --', ' –'],
|
413
|
+
['hellip', ' ...', ' …'],
|
414
|
+
['laquo', ' <<', ' «'],
|
415
|
+
['raquo', '>>', '»'],
|
416
|
+
['laquo_space', ' << T', ' « T'],
|
417
|
+
['raquo_space', ' >>', ' »']].each do |symbol|
|
417
418
|
define_method "test_convert_typographic_symbols_#{symbol[0]}" do
|
418
419
|
expected = [
|
419
420
|
{
|
420
|
-
type:
|
421
|
+
type: 'paragraph',
|
421
422
|
content: {
|
422
423
|
text: "Hello#{symbol[2]}",
|
423
424
|
spans: []
|
@@ -431,11 +432,12 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
431
432
|
|
432
433
|
def test_convert_smart_quote
|
433
434
|
expected = [
|
434
|
-
{
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
435
|
+
{
|
436
|
+
type: 'paragraph',
|
437
|
+
content: {
|
438
|
+
text: "Test\u2019",
|
439
|
+
spans: []
|
440
|
+
}
|
439
441
|
}
|
440
442
|
]
|
441
443
|
markdown = "Test'"
|
@@ -445,14 +447,14 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
445
447
|
def test_convert_inline_code
|
446
448
|
expected = [
|
447
449
|
{
|
448
|
-
type:
|
450
|
+
type: 'paragraph',
|
449
451
|
content: {
|
450
|
-
text:
|
452
|
+
text: 'Hello code',
|
451
453
|
spans: []
|
452
454
|
}
|
453
455
|
}
|
454
456
|
]
|
455
|
-
markdown =
|
457
|
+
markdown = 'Hello `code`'
|
456
458
|
doc = Kramdown::Document.new(markdown)
|
457
459
|
assert_equal expected, doc.to_prismic
|
458
460
|
assert_equal 1, doc.warnings.size
|
@@ -460,20 +462,54 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
460
462
|
|
461
463
|
def test_convert_br
|
462
464
|
expected = [
|
463
|
-
{
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
465
|
+
{
|
466
|
+
type: 'paragraph',
|
467
|
+
content: {
|
468
|
+
text: "Test\n",
|
469
|
+
spans: []
|
470
|
+
}
|
471
|
+
}
|
472
|
+
]
|
473
|
+
html = '<p>Test<br></p>'
|
474
|
+
assert_equal expected, Kramdown::Document.new(html, input: :html).to_prismic
|
475
|
+
end
|
476
|
+
|
477
|
+
def test_convert_html_with_no_tags
|
478
|
+
expected = [
|
479
|
+
{
|
480
|
+
type: 'paragraph',
|
481
|
+
content: {
|
482
|
+
text: "Test\n",
|
483
|
+
spans: []
|
484
|
+
}
|
468
485
|
}
|
469
486
|
]
|
470
|
-
html =
|
487
|
+
html = 'Test'
|
471
488
|
assert_equal expected, Kramdown::Document.new(html, input: :html).to_prismic
|
472
489
|
end
|
473
490
|
|
491
|
+
def test_convert_iframe
|
492
|
+
expected = [
|
493
|
+
{
|
494
|
+
type: 'embed',
|
495
|
+
content: {
|
496
|
+
text: '',
|
497
|
+
spans: []
|
498
|
+
},
|
499
|
+
data: {
|
500
|
+
embed_url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
|
501
|
+
type: 'link'
|
502
|
+
}
|
503
|
+
}
|
504
|
+
]
|
505
|
+
html = '<iframe src="https://www.youtube.com/watch?v=dQw4w9WgXcQ"></iframe>'
|
506
|
+
doc = Kramdown::Document.new(html, input: :markdown)
|
507
|
+
assert_equal expected, doc.to_prismic
|
508
|
+
end
|
509
|
+
|
474
510
|
def test_convert_html
|
475
511
|
expected = []
|
476
|
-
html =
|
512
|
+
html = '<div></div>'
|
477
513
|
doc = Kramdown::Document.new(html, input: :markdown)
|
478
514
|
assert_equal expected, doc.to_prismic
|
479
515
|
assert_equal 1, doc.warnings.size
|
@@ -482,14 +518,14 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
482
518
|
def test_convert_span_html
|
483
519
|
expected = [
|
484
520
|
{
|
485
|
-
type:
|
521
|
+
type: 'paragraph',
|
486
522
|
content: {
|
487
|
-
text:
|
523
|
+
text: '',
|
488
524
|
spans: []
|
489
525
|
}
|
490
526
|
}
|
491
527
|
]
|
492
|
-
html =
|
528
|
+
html = '<br>'
|
493
529
|
doc = Kramdown::Document.new(html, input: :markdown)
|
494
530
|
assert_equal expected, doc.to_prismic
|
495
531
|
assert_equal 1, doc.warnings.size
|
@@ -497,7 +533,7 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
497
533
|
|
498
534
|
def test_convert_table
|
499
535
|
expected = []
|
500
|
-
markdown =
|
536
|
+
markdown = '| First cell|Second cell|Third cell|'
|
501
537
|
doc = Kramdown::Document.new(markdown, input: :kramdown)
|
502
538
|
assert_equal expected, doc.to_prismic
|
503
539
|
assert_equal 1, doc.warnings.size
|
@@ -513,7 +549,7 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
513
549
|
|
514
550
|
def test_convert_math
|
515
551
|
expected = []
|
516
|
-
markdown =
|
552
|
+
markdown = '$$ 5 + 5 $$'
|
517
553
|
doc = Kramdown::Document.new(markdown, input: :kramdown)
|
518
554
|
assert_equal expected, doc.to_prismic
|
519
555
|
assert_equal 1, doc.warnings.size
|
@@ -522,12 +558,13 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
522
558
|
def test_convert_footnote
|
523
559
|
expected = [
|
524
560
|
{
|
525
|
-
type:
|
561
|
+
type: 'paragraph',
|
526
562
|
content: {
|
527
|
-
text:
|
563
|
+
text: 'test',
|
528
564
|
spans: []
|
529
565
|
}
|
530
|
-
}
|
566
|
+
}
|
567
|
+
]
|
531
568
|
markdown = "test[^1]\n\n[^1]: test"
|
532
569
|
doc = Kramdown::Document.new(markdown, input: :kramdown)
|
533
570
|
assert_equal expected, doc.to_prismic
|
@@ -537,12 +574,13 @@ class KramdownPrismicConverterTest < Minitest::Test
|
|
537
574
|
def test_convert_abbreviation
|
538
575
|
expected = [
|
539
576
|
{
|
540
|
-
type:
|
577
|
+
type: 'paragraph',
|
541
578
|
content: {
|
542
|
-
text:
|
579
|
+
text: 'HTML',
|
543
580
|
spans: []
|
544
581
|
}
|
545
|
-
}
|
582
|
+
}
|
583
|
+
]
|
546
584
|
markdown = "HTML\n\n*[HTML]: test"
|
547
585
|
doc = Kramdown::Document.new(markdown, input: :kramdown)
|
548
586
|
assert_equal expected, doc.to_prismic
|
data/test/parser_test.rb
CHANGED
@@ -1,43 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'minitest/autorun'
|
2
4
|
require 'kramdown-prismic'
|
3
5
|
|
4
6
|
class KramdownPrismicParserTest < Minitest::Test
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
]
|
15
|
-
expected = "# This is the document title\n\n"
|
16
|
-
doc = Kramdown::Document.new(prismic, input: :prismic)
|
17
|
-
assert_equal expected, doc.to_kramdown
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_parse_heading2
|
21
|
-
prismic = [
|
22
|
-
{
|
23
|
-
type: "heading2",
|
24
|
-
content: {
|
25
|
-
text: "This is an h2 title",
|
26
|
-
spans: []
|
7
|
+
6.times do |heading|
|
8
|
+
define_method "test_parse_heading_#{heading}" do
|
9
|
+
prismic = [
|
10
|
+
{
|
11
|
+
type: "heading#{heading + 1}",
|
12
|
+
content: {
|
13
|
+
text: 'This is the document title',
|
14
|
+
spans: []
|
15
|
+
}
|
27
16
|
}
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
17
|
+
]
|
18
|
+
expected = "#{'#' * (heading + 1)} This is the document title\n\n"
|
19
|
+
doc = Kramdown::Document.new(prismic, input: :prismic)
|
20
|
+
assert_equal expected, doc.to_kramdown
|
21
|
+
end
|
33
22
|
end
|
34
23
|
|
35
24
|
def test_parse_paragraph
|
36
25
|
prismic = [
|
37
26
|
{
|
38
|
-
type:
|
27
|
+
type: 'paragraph',
|
39
28
|
content: {
|
40
|
-
text:
|
29
|
+
text: 'This is a paragraph',
|
41
30
|
spans: []
|
42
31
|
}
|
43
32
|
}
|
@@ -50,12 +39,12 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
50
39
|
def test_parse_paragraph_with_spans
|
51
40
|
prismic = [
|
52
41
|
{
|
53
|
-
type:
|
42
|
+
type: 'paragraph',
|
54
43
|
content: {
|
55
|
-
text:
|
44
|
+
text: 'This is a paragraph',
|
56
45
|
spans: [
|
57
46
|
{
|
58
|
-
type:
|
47
|
+
type: 'em',
|
59
48
|
start: 0,
|
60
49
|
end: 4
|
61
50
|
}
|
@@ -71,17 +60,17 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
71
60
|
def test_parse_paragraph_with_multiple_spans
|
72
61
|
prismic = [
|
73
62
|
{
|
74
|
-
type:
|
63
|
+
type: 'paragraph',
|
75
64
|
content: {
|
76
|
-
text:
|
65
|
+
text: 'This is a paragraph',
|
77
66
|
spans: [
|
78
67
|
{
|
79
|
-
type:
|
68
|
+
type: 'em',
|
80
69
|
start: 0,
|
81
70
|
end: 4
|
82
71
|
},
|
83
72
|
{
|
84
|
-
type:
|
73
|
+
type: 'strong',
|
85
74
|
start: 5,
|
86
75
|
end: 7
|
87
76
|
}
|
@@ -97,16 +86,16 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
97
86
|
def test_parse_paragraph_with_link
|
98
87
|
prismic = [
|
99
88
|
{
|
100
|
-
type:
|
89
|
+
type: 'paragraph',
|
101
90
|
content: {
|
102
|
-
text:
|
91
|
+
text: 'This is a paragraph',
|
103
92
|
spans: [
|
104
93
|
{
|
105
|
-
type:
|
94
|
+
type: 'hyperlink',
|
106
95
|
start: 0,
|
107
96
|
end: 19,
|
108
97
|
data: {
|
109
|
-
url:
|
98
|
+
url: 'https://prismic.io'
|
110
99
|
}
|
111
100
|
}
|
112
101
|
]
|
@@ -121,21 +110,21 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
121
110
|
def test_parse_paragraph_with_nested_spans
|
122
111
|
prismic = [
|
123
112
|
{
|
124
|
-
type:
|
113
|
+
type: 'paragraph',
|
125
114
|
content: {
|
126
|
-
text:
|
115
|
+
text: 'This is a paragraph',
|
127
116
|
spans: [
|
128
117
|
{
|
129
|
-
type:
|
118
|
+
type: 'em',
|
130
119
|
start: 0,
|
131
120
|
end: 4
|
132
121
|
},
|
133
122
|
{
|
134
|
-
type:
|
123
|
+
type: 'hyperlink',
|
135
124
|
start: 0,
|
136
125
|
end: 19,
|
137
126
|
data: {
|
138
|
-
url:
|
127
|
+
url: 'https://prismic.io'
|
139
128
|
}
|
140
129
|
}
|
141
130
|
]
|
@@ -150,9 +139,9 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
150
139
|
def test_parse_image
|
151
140
|
prismic = [
|
152
141
|
{
|
153
|
-
type:
|
142
|
+
type: 'image',
|
154
143
|
content: {
|
155
|
-
text:
|
144
|
+
text: '',
|
156
145
|
spans: []
|
157
146
|
},
|
158
147
|
data: {
|
@@ -171,7 +160,7 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
171
160
|
def test_parse_preformatted
|
172
161
|
prismic = [
|
173
162
|
{
|
174
|
-
type:
|
163
|
+
type: 'preformatted',
|
175
164
|
content: {
|
176
165
|
text: "This is a pre block\n",
|
177
166
|
spans: []
|
@@ -186,13 +175,13 @@ class KramdownPrismicParserTest < Minitest::Test
|
|
186
175
|
def test_parse_embed
|
187
176
|
prismic = [
|
188
177
|
{
|
189
|
-
type:
|
178
|
+
type: 'embed',
|
190
179
|
data: {
|
191
|
-
type:
|
192
|
-
embed_url:
|
180
|
+
type: 'video',
|
181
|
+
embed_url: 'https://www.youtube.com/watch?v=y6y_4_b6RS8'
|
193
182
|
},
|
194
183
|
content: {
|
195
|
-
text:
|
184
|
+
text: '',
|
196
185
|
spans: []
|
197
186
|
}
|
198
187
|
}
|
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.1
|
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-08-
|
11
|
+
date: 2021-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -61,19 +61,24 @@ dependencies:
|
|
61
61
|
description: A Kramdown converter to convert documents into prismic rich text format
|
62
62
|
and the other way around.
|
63
63
|
email: francois@2metz.fr
|
64
|
-
executables:
|
64
|
+
executables:
|
65
|
+
- markdown2prismic
|
66
|
+
- html2prismic
|
67
|
+
- prismic2markdown
|
65
68
|
extensions: []
|
66
69
|
extra_rdoc_files: []
|
67
70
|
files:
|
68
71
|
- ".github/workflows/ci.yml"
|
69
72
|
- ".gitignore"
|
70
|
-
-
|
71
|
-
- Changelog.md
|
73
|
+
- CHANGELOG.md
|
72
74
|
- Gemfile
|
73
75
|
- Gemfile.lock
|
74
76
|
- LICENSE
|
75
77
|
- README.md
|
76
78
|
- Rakefile
|
79
|
+
- bin/html2prismic
|
80
|
+
- bin/markdown2prismic
|
81
|
+
- bin/prismic2markdown
|
77
82
|
- kramdown-prismic.gemspec
|
78
83
|
- kramdown1.gemfile
|
79
84
|
- kramdown2.gemfile
|