kramdown-prismic 0.3.0 → 0.3.1
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 → 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 = ''
|
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 = ''
|
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 = '[](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
|