commonmarker 0.17.13 → 0.23.4
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.
Potentially problematic release.
This version of commonmarker might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/README.md +94 -18
- data/Rakefile +24 -5
- data/bin/commonmarker +107 -47
- data/commonmarker.gemspec +18 -15
- data/ext/commonmarker/autolink.c +10 -6
- data/ext/commonmarker/blocks.c +102 -31
- data/ext/commonmarker/buffer.c +0 -1
- data/ext/commonmarker/chunk.h +0 -1
- data/ext/commonmarker/cmark-gfm-core-extensions.h +29 -0
- data/ext/commonmarker/cmark-gfm-extension_api.h +19 -2
- data/ext/commonmarker/cmark-gfm.h +19 -5
- data/ext/commonmarker/cmark-gfm_version.h +2 -2
- data/ext/commonmarker/commonmark.c +33 -12
- data/ext/commonmarker/commonmarker.c +209 -100
- data/ext/commonmarker/core-extensions.c +2 -0
- data/ext/commonmarker/ext_scanners.c +622 -684
- data/ext/commonmarker/ext_scanners.h +2 -0
- data/ext/commonmarker/extconf.rb +3 -1
- data/ext/commonmarker/footnotes.c +23 -0
- data/ext/commonmarker/footnotes.h +2 -0
- data/ext/commonmarker/houdini_href_e.c +1 -1
- data/ext/commonmarker/html.c +46 -25
- data/ext/commonmarker/inlines.c +127 -30
- data/ext/commonmarker/iterator.h +0 -1
- data/ext/commonmarker/map.h +0 -1
- data/ext/commonmarker/node.c +17 -3
- data/ext/commonmarker/node.h +9 -0
- data/ext/commonmarker/parser.h +2 -1
- data/ext/commonmarker/plaintext.c +22 -0
- data/ext/commonmarker/render.c +18 -15
- data/ext/commonmarker/render.h +0 -1
- data/ext/commonmarker/scanners.c +779 -953
- data/ext/commonmarker/scanners.h +0 -2
- data/ext/commonmarker/strikethrough.c +4 -1
- data/ext/commonmarker/syntax_extension.c +10 -0
- data/ext/commonmarker/syntax_extension.h +2 -0
- data/ext/commonmarker/table.c +178 -31
- data/ext/commonmarker/tasklist.c +156 -0
- data/ext/commonmarker/tasklist.h +8 -0
- data/ext/commonmarker/xml.c +9 -2
- data/lib/commonmarker/config.rb +41 -38
- data/lib/commonmarker/errors.rb +12 -0
- data/lib/commonmarker/node/inspect.rb +15 -17
- data/lib/commonmarker/node.rb +14 -2
- data/lib/commonmarker/renderer/html_renderer.rb +45 -36
- data/lib/commonmarker/renderer.rb +16 -10
- data/lib/commonmarker/version.rb +3 -1
- data/lib/commonmarker.rb +8 -7
- data/test/benchmark.rb +26 -21
- data/test/fixtures/strong.md +1 -0
- data/test/fixtures/table.md +10 -0
- data/test/test_attributes.rb +5 -3
- data/test/test_basics.rb +19 -0
- data/test/test_commands.rb +72 -0
- data/test/test_commonmark.rb +15 -13
- data/test/test_doc.rb +31 -29
- data/test/test_encoding.rb +9 -5
- data/test/test_extensions.rb +66 -73
- data/test/test_footnotes.rb +47 -12
- data/test/test_gc.rb +6 -2
- data/test/test_helper.rb +25 -15
- data/test/test_linebreaks.rb +2 -0
- data/test/test_maliciousness.rb +189 -190
- data/test/test_node.rb +12 -12
- data/test/test_options.rb +17 -15
- data/test/test_pathological_inputs.rb +14 -12
- data/test/test_plaintext.rb +23 -21
- data/test/test_renderer.rb +29 -10
- data/test/test_smartpunct.rb +7 -2
- data/test/test_spec.rb +7 -4
- data/test/test_tasklists.rb +43 -0
- data/test/test_xml.rb +107 -0
- metadata +74 -30
data/test/test_plaintext.rb
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class TestPlaintext < Minitest::Test
|
4
6
|
def setup
|
5
|
-
@markdown =
|
6
|
-
Hi *there*!
|
7
|
+
@markdown = <<~MD
|
8
|
+
Hi *there*!
|
7
9
|
|
8
|
-
1. I am a numeric list.
|
9
|
-
2. I continue the list.
|
10
|
-
* Suddenly, an unordered list!
|
11
|
-
* What fun!
|
10
|
+
1. I am a numeric list.
|
11
|
+
2. I continue the list.
|
12
|
+
* Suddenly, an unordered list!
|
13
|
+
* What fun!
|
12
14
|
|
13
|
-
Okay, _enough_.
|
15
|
+
Okay, _enough_.
|
14
16
|
|
15
|
-
| a | b |
|
16
|
-
| --- | --- |
|
17
|
-
| c | d |
|
17
|
+
| a | b |
|
18
|
+
| --- | --- |
|
19
|
+
| c | d |
|
18
20
|
MD
|
19
21
|
end
|
20
22
|
|
@@ -25,20 +27,20 @@ Okay, _enough_.
|
|
25
27
|
def test_to_commonmark
|
26
28
|
compare = render_doc(@markdown).to_plaintext
|
27
29
|
|
28
|
-
assert_equal
|
29
|
-
Hi there!
|
30
|
+
assert_equal <<~PLAINTEXT, compare
|
31
|
+
Hi there!
|
30
32
|
|
31
|
-
1. I am a numeric list.
|
32
|
-
2. I continue the list.
|
33
|
+
1. I am a numeric list.
|
34
|
+
2. I continue the list.
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
+
- Suddenly, an unordered list!
|
37
|
+
- What fun!
|
36
38
|
|
37
|
-
Okay, enough.
|
39
|
+
Okay, enough.
|
38
40
|
|
39
|
-
| a | b |
|
40
|
-
| --- | --- |
|
41
|
-
| c | d |
|
42
|
-
|
41
|
+
| a | b |
|
42
|
+
| --- | --- |
|
43
|
+
| c | d |
|
44
|
+
PLAINTEXT
|
43
45
|
end
|
44
46
|
end
|
data/test/test_renderer.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class TestRenderer < Minitest::Test
|
@@ -12,17 +14,34 @@ class TestRenderer < Minitest::Test
|
|
12
14
|
end
|
13
15
|
|
14
16
|
def test_multiple_tables
|
15
|
-
content =
|
16
|
-
| Input | Expected | Actual |
|
17
|
-
| ----------- | ---------------- | --------- |
|
18
|
-
| One | Two | Three |
|
19
|
-
|
20
|
-
| Header | Row | Example |
|
21
|
-
| :------: | ---: | :------ |
|
22
|
-
| Foo | Bar | Baz |
|
23
|
-
|
24
|
-
doc = CommonMarker.render_doc(content, :DEFAULT, [
|
17
|
+
content = <<~DOC
|
18
|
+
| Input | Expected | Actual |
|
19
|
+
| ----------- | ---------------- | --------- |
|
20
|
+
| One | Two | Three |
|
21
|
+
|
22
|
+
| Header | Row | Example |
|
23
|
+
| :------: | ---: | :------ |
|
24
|
+
| Foo | Bar | Baz |
|
25
|
+
DOC
|
26
|
+
doc = CommonMarker.render_doc(content, :DEFAULT, %i[autolink table tagfilter])
|
25
27
|
results = CommonMarker::HtmlRenderer.new.render(doc)
|
26
28
|
assert_equal 2, results.scan(/<tbody>/).size
|
27
29
|
end
|
30
|
+
|
31
|
+
def test_escape_html_encoding
|
32
|
+
my_renderer = Class.new(HtmlRenderer) do
|
33
|
+
attr_reader :input_encoding, :output_encoding
|
34
|
+
|
35
|
+
def text(node)
|
36
|
+
@input_encoding = node.string_content.encoding
|
37
|
+
escape_html(node.string_content).tap do |escaped|
|
38
|
+
@output_encoding = escaped.encoding
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
renderer = my_renderer.new
|
44
|
+
assert_equal Encoding::UTF_8, renderer.render(@doc).encoding
|
45
|
+
assert_equal renderer.input_encoding, renderer.output_encoding
|
46
|
+
end
|
28
47
|
end
|
data/test/test_smartpunct.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class SmartPunctTest < Minitest::Test
|
@@ -5,11 +7,14 @@ class SmartPunctTest < Minitest::Test
|
|
5
7
|
|
6
8
|
smart_punct.each do |testcase|
|
7
9
|
doc = CommonMarker.render_doc(testcase[:markdown], :SMART)
|
10
|
+
html = CommonMarker.render_html(testcase[:markdown], :SMART)
|
8
11
|
|
9
12
|
define_method("test_smart_punct_example_#{testcase[:example]}") do
|
10
|
-
|
13
|
+
doc_rendered = doc.to_html.strip
|
14
|
+
html_rendered = html.strip
|
11
15
|
|
12
|
-
assert_equal testcase[:html],
|
16
|
+
assert_equal testcase[:html], doc_rendered, testcase[:markdown]
|
17
|
+
assert_equal testcase[:html], html_rendered, testcase[:markdown]
|
13
18
|
end
|
14
19
|
end
|
15
20
|
|
data/test/test_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
require 'json'
|
3
5
|
|
@@ -6,21 +8,22 @@ class TestSpec < Minitest::Test
|
|
6
8
|
|
7
9
|
spec.each do |testcase|
|
8
10
|
next if testcase[:extensions].include?(:disabled)
|
11
|
+
|
9
12
|
doc = CommonMarker.render_doc(testcase[:markdown], :DEFAULT, testcase[:extensions])
|
10
13
|
|
11
14
|
define_method("test_to_html_example_#{testcase[:example]}") do
|
12
|
-
actual = doc.to_html(:
|
15
|
+
actual = doc.to_html(:UNSAFE, testcase[:extensions]).rstrip
|
13
16
|
assert_equal testcase[:html], actual, testcase[:markdown]
|
14
17
|
end
|
15
18
|
|
16
19
|
define_method("test_html_renderer_example_#{testcase[:example]}") do
|
17
|
-
actual = HtmlRenderer.new(extensions: testcase[:extensions]).render(doc).rstrip
|
20
|
+
actual = HtmlRenderer.new(options: :UNSAFE, extensions: testcase[:extensions]).render(doc).rstrip
|
18
21
|
assert_equal testcase[:html], actual, testcase[:markdown]
|
19
22
|
end
|
20
23
|
|
21
24
|
define_method("test_sourcepos_example_#{testcase[:example]}") do
|
22
|
-
lhs = doc.to_html(
|
23
|
-
rhs = HtmlRenderer.new(options:
|
25
|
+
lhs = doc.to_html(%i[UNSAFE SOURCEPOS], testcase[:extensions]).rstrip
|
26
|
+
rhs = HtmlRenderer.new(options: %i[UNSAFE SOURCEPOS], extensions: testcase[:extensions]).render(doc).rstrip
|
24
27
|
assert_equal lhs, rhs, testcase[:markdown]
|
25
28
|
end
|
26
29
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class TestTasklists < Minitest::Test
|
6
|
+
def setup
|
7
|
+
text = <<-MD
|
8
|
+
- [x] Add task list
|
9
|
+
- [ ] Define task list
|
10
|
+
MD
|
11
|
+
@doc = CommonMarker.render_doc(text, :DEFAULT, %i[tasklist])
|
12
|
+
@expected = <<~HTML
|
13
|
+
<ul>
|
14
|
+
<li><input type="checkbox" checked="" disabled="" /> Add task list</li>
|
15
|
+
<li><input type="checkbox" disabled="" /> Define task list</li>
|
16
|
+
</ul>
|
17
|
+
HTML
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_to_html
|
21
|
+
assert_equal @expected, @doc.to_html
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_html_renderer
|
25
|
+
assert_equal @expected, CommonMarker::HtmlRenderer.new.render(@doc)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_tasklist_state
|
29
|
+
list = @doc.first_child
|
30
|
+
assert_equal 'checked', list.first_child.tasklist_state
|
31
|
+
assert list.first_child.tasklist_item_checked?
|
32
|
+
assert_equal 'unchecked', list.first_child.next.tasklist_state
|
33
|
+
refute list.first_child.next.tasklist_item_checked?
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_set_tasklist_state
|
37
|
+
list = @doc.first_child
|
38
|
+
list.first_child.tasklist_item_checked = false
|
39
|
+
refute list.first_child.tasklist_item_checked?
|
40
|
+
list.first_child.next.tasklist_item_checked = true
|
41
|
+
assert list.first_child.next.tasklist_item_checked?
|
42
|
+
end
|
43
|
+
end
|
data/test/test_xml.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class TestXml < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@markdown = <<~MD
|
8
|
+
Hi *there*!
|
9
|
+
|
10
|
+
1. I am a numeric list.
|
11
|
+
2. I continue the list.
|
12
|
+
* Suddenly, an unordered list!
|
13
|
+
* What fun!
|
14
|
+
|
15
|
+
Okay, _enough_.
|
16
|
+
|
17
|
+
| a | b |
|
18
|
+
| --- | --- |
|
19
|
+
| c | d |
|
20
|
+
MD
|
21
|
+
end
|
22
|
+
|
23
|
+
def render_doc(doc)
|
24
|
+
CommonMarker.render_doc(doc, :DEFAULT, [:table])
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_to_xml
|
28
|
+
compare = render_doc(@markdown).to_xml(:SOURCEPOS)
|
29
|
+
|
30
|
+
assert_equal <<~XML, compare
|
31
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
32
|
+
<!DOCTYPE document SYSTEM "CommonMark.dtd">
|
33
|
+
<document sourcepos="1:1-12:13" xmlns="http://commonmark.org/xml/1.0">
|
34
|
+
<paragraph sourcepos="1:1-1:11">
|
35
|
+
<text sourcepos="1:1-1:3" xml:space="preserve">Hi </text>
|
36
|
+
<emph sourcepos="1:4-1:10">
|
37
|
+
<text sourcepos="1:5-1:9" xml:space="preserve">there</text>
|
38
|
+
</emph>
|
39
|
+
<text sourcepos="1:11-1:11" xml:space="preserve">!</text>
|
40
|
+
</paragraph>
|
41
|
+
<list sourcepos="3:1-4:23" type="ordered" start="1" delim="period" tight="true">
|
42
|
+
<item sourcepos="3:1-3:23">
|
43
|
+
<paragraph sourcepos="3:4-3:23">
|
44
|
+
<text sourcepos="3:4-3:23" xml:space="preserve">I am a numeric list.</text>
|
45
|
+
</paragraph>
|
46
|
+
</item>
|
47
|
+
<item sourcepos="4:1-4:23">
|
48
|
+
<paragraph sourcepos="4:4-4:23">
|
49
|
+
<text sourcepos="4:4-4:23" xml:space="preserve">I continue the list.</text>
|
50
|
+
</paragraph>
|
51
|
+
</item>
|
52
|
+
</list>
|
53
|
+
<list sourcepos="5:1-7:0" type="bullet" tight="true">
|
54
|
+
<item sourcepos="5:1-5:30">
|
55
|
+
<paragraph sourcepos="5:3-5:30">
|
56
|
+
<text sourcepos="5:3-5:30" xml:space="preserve">Suddenly, an unordered list!</text>
|
57
|
+
</paragraph>
|
58
|
+
</item>
|
59
|
+
<item sourcepos="6:1-7:0">
|
60
|
+
<paragraph sourcepos="6:3-6:11">
|
61
|
+
<text sourcepos="6:3-6:11" xml:space="preserve">What fun!</text>
|
62
|
+
</paragraph>
|
63
|
+
</item>
|
64
|
+
</list>
|
65
|
+
<paragraph sourcepos="8:1-8:15">
|
66
|
+
<text sourcepos="8:1-8:6" xml:space="preserve">Okay, </text>
|
67
|
+
<emph sourcepos="8:7-8:14">
|
68
|
+
<text sourcepos="8:8-8:13" xml:space="preserve">enough</text>
|
69
|
+
</emph>
|
70
|
+
<text sourcepos="8:15-8:15" xml:space="preserve">.</text>
|
71
|
+
</paragraph>
|
72
|
+
<table sourcepos="10:1-12:13">
|
73
|
+
<table_header sourcepos="10:1-10:13">
|
74
|
+
<table_cell sourcepos="10:2-10:6">
|
75
|
+
<text sourcepos="10:3-10:3" xml:space="preserve">a</text>
|
76
|
+
</table_cell>
|
77
|
+
<table_cell sourcepos="10:8-10:12">
|
78
|
+
<text sourcepos="10:9-10:9" xml:space="preserve">b</text>
|
79
|
+
</table_cell>
|
80
|
+
</table_header>
|
81
|
+
<table_row sourcepos="12:1-12:13">
|
82
|
+
<table_cell sourcepos="12:2-12:6">
|
83
|
+
<text sourcepos="12:3-12:3" xml:space="preserve">c</text>
|
84
|
+
</table_cell>
|
85
|
+
<table_cell sourcepos="12:8-12:12">
|
86
|
+
<text sourcepos="12:9-12:9" xml:space="preserve">d</text>
|
87
|
+
</table_cell>
|
88
|
+
</table_row>
|
89
|
+
</table>
|
90
|
+
</document>
|
91
|
+
XML
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_to_xml_with_quotes
|
95
|
+
compare = render_doc('"quotes" should be escaped').to_xml(:DEFAULT)
|
96
|
+
|
97
|
+
assert_equal <<~XML, compare
|
98
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
99
|
+
<!DOCTYPE document SYSTEM "CommonMark.dtd">
|
100
|
+
<document xmlns="http://commonmark.org/xml/1.0">
|
101
|
+
<paragraph>
|
102
|
+
<text xml:space="preserve">"quotes" should be escaped</text>
|
103
|
+
</paragraph>
|
104
|
+
</document>
|
105
|
+
XML
|
106
|
+
end
|
107
|
+
end
|
metadata
CHANGED
@@ -1,30 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmarker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
8
8
|
- Ashe Connor
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: awesome_print
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: json
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
17
31
|
requirements:
|
18
32
|
- - "~>"
|
19
33
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
21
|
-
type: :
|
34
|
+
version: '2.3'
|
35
|
+
type: :development
|
22
36
|
prerelease: false
|
23
37
|
version_requirements: !ruby/object:Gem::Requirement
|
24
38
|
requirements:
|
25
39
|
- - "~>"
|
26
40
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
41
|
+
version: '2.3'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: minitest
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -40,49 +54,63 @@ dependencies:
|
|
40
54
|
- !ruby/object:Gem::Version
|
41
55
|
version: '5.6'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
57
|
+
name: minitest-focus
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
45
59
|
requirements:
|
46
60
|
- - "~>"
|
47
61
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
62
|
+
version: '1.1'
|
49
63
|
type: :development
|
50
64
|
prerelease: false
|
51
65
|
version_requirements: !ruby/object:Gem::Requirement
|
52
66
|
requirements:
|
53
67
|
- - "~>"
|
54
68
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
69
|
+
version: '1.1'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
56
84
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
85
|
+
name: rake-compiler
|
58
86
|
requirement: !ruby/object:Gem::Requirement
|
59
87
|
requirements:
|
60
88
|
- - "~>"
|
61
89
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
90
|
+
version: '0.9'
|
63
91
|
type: :development
|
64
92
|
prerelease: false
|
65
93
|
version_requirements: !ruby/object:Gem::Requirement
|
66
94
|
requirements:
|
67
95
|
- - "~>"
|
68
96
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
97
|
+
version: '0.9'
|
70
98
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
99
|
+
name: rdoc
|
72
100
|
requirement: !ruby/object:Gem::Requirement
|
73
101
|
requirements:
|
74
102
|
- - "~>"
|
75
103
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
104
|
+
version: '6.2'
|
77
105
|
type: :development
|
78
106
|
prerelease: false
|
79
107
|
version_requirements: !ruby/object:Gem::Requirement
|
80
108
|
requirements:
|
81
109
|
- - "~>"
|
82
110
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
111
|
+
version: '6.2'
|
84
112
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
113
|
+
name: rubocop
|
86
114
|
requirement: !ruby/object:Gem::Requirement
|
87
115
|
requirements:
|
88
116
|
- - ">="
|
@@ -96,22 +124,22 @@ dependencies:
|
|
96
124
|
- !ruby/object:Gem::Version
|
97
125
|
version: '0'
|
98
126
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
127
|
+
name: rubocop-standard
|
100
128
|
requirement: !ruby/object:Gem::Requirement
|
101
129
|
requirements:
|
102
|
-
- - "
|
130
|
+
- - ">="
|
103
131
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
132
|
+
version: '0'
|
105
133
|
type: :development
|
106
134
|
prerelease: false
|
107
135
|
version_requirements: !ruby/object:Gem::Requirement
|
108
136
|
requirements:
|
109
|
-
- - "
|
137
|
+
- - ">="
|
110
138
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
139
|
+
version: '0'
|
112
140
|
description: A fast, safe, extensible parser for CommonMark. This wraps the official
|
113
141
|
libcmark library.
|
114
|
-
email:
|
142
|
+
email:
|
115
143
|
executables:
|
116
144
|
- commonmarker
|
117
145
|
extensions:
|
@@ -189,11 +217,14 @@ files:
|
|
189
217
|
- ext/commonmarker/table.h
|
190
218
|
- ext/commonmarker/tagfilter.c
|
191
219
|
- ext/commonmarker/tagfilter.h
|
220
|
+
- ext/commonmarker/tasklist.c
|
221
|
+
- ext/commonmarker/tasklist.h
|
192
222
|
- ext/commonmarker/utf8.c
|
193
223
|
- ext/commonmarker/utf8.h
|
194
224
|
- ext/commonmarker/xml.c
|
195
225
|
- lib/commonmarker.rb
|
196
226
|
- lib/commonmarker/config.rb
|
227
|
+
- lib/commonmarker/errors.rb
|
197
228
|
- lib/commonmarker/node.rb
|
198
229
|
- lib/commonmarker/node/inspect.rb
|
199
230
|
- lib/commonmarker/renderer.rb
|
@@ -202,8 +233,11 @@ files:
|
|
202
233
|
- test/benchmark.rb
|
203
234
|
- test/fixtures/curly.md
|
204
235
|
- test/fixtures/dingus.md
|
236
|
+
- test/fixtures/strong.md
|
237
|
+
- test/fixtures/table.md
|
205
238
|
- test/test_attributes.rb
|
206
239
|
- test/test_basics.rb
|
240
|
+
- test/test_commands.rb
|
207
241
|
- test/test_commonmark.rb
|
208
242
|
- test/test_doc.rb
|
209
243
|
- test/test_encoding.rb
|
@@ -220,11 +254,14 @@ files:
|
|
220
254
|
- test/test_renderer.rb
|
221
255
|
- test/test_smartpunct.rb
|
222
256
|
- test/test_spec.rb
|
223
|
-
|
257
|
+
- test/test_tasklists.rb
|
258
|
+
- test/test_xml.rb
|
259
|
+
homepage: https://github.com/gjtorikian/commonmarker
|
224
260
|
licenses:
|
225
261
|
- MIT
|
226
|
-
metadata:
|
227
|
-
|
262
|
+
metadata:
|
263
|
+
rubygems_mfa_required: 'true'
|
264
|
+
post_install_message:
|
228
265
|
rdoc_options:
|
229
266
|
- "-x"
|
230
267
|
- ext/commonmarker/cmark/.*
|
@@ -235,24 +272,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
272
|
requirements:
|
236
273
|
- - ">="
|
237
274
|
- !ruby/object:Gem::Version
|
238
|
-
version: 2.
|
275
|
+
version: '2.6'
|
276
|
+
- - "<"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '4.0'
|
239
279
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
280
|
requirements:
|
241
281
|
- - ">="
|
242
282
|
- !ruby/object:Gem::Version
|
243
283
|
version: '0'
|
244
284
|
requirements: []
|
245
|
-
|
246
|
-
|
247
|
-
signing_key:
|
285
|
+
rubygems_version: 3.3.3
|
286
|
+
signing_key:
|
248
287
|
specification_version: 4
|
249
288
|
summary: CommonMark parser and renderer. Written in C, wrapped in Ruby.
|
250
289
|
test_files:
|
251
290
|
- test/benchmark.rb
|
252
291
|
- test/fixtures/curly.md
|
253
292
|
- test/fixtures/dingus.md
|
293
|
+
- test/fixtures/strong.md
|
294
|
+
- test/fixtures/table.md
|
254
295
|
- test/test_attributes.rb
|
255
296
|
- test/test_basics.rb
|
297
|
+
- test/test_commands.rb
|
256
298
|
- test/test_commonmark.rb
|
257
299
|
- test/test_doc.rb
|
258
300
|
- test/test_encoding.rb
|
@@ -269,3 +311,5 @@ test_files:
|
|
269
311
|
- test/test_renderer.rb
|
270
312
|
- test/test_smartpunct.rb
|
271
313
|
- test/test_spec.rb
|
314
|
+
- test/test_tasklists.rb
|
315
|
+
- test/test_xml.rb
|