qiita_marker 0.23.2.1 → 0.23.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +19 -17
  3. data/README.md +2 -0
  4. data/Rakefile +57 -56
  5. data/bin/qiita_marker +2 -7
  6. data/ext/qiita_marker/autolink.c +57 -10
  7. data/ext/qiita_marker/cmark-gfm_version.h +2 -2
  8. data/ext/qiita_marker/html.c +1 -1
  9. data/ext/qiita_marker/qfm.h +3 -0
  10. data/ext/qiita_marker/qfm_custom_block.c +1 -14
  11. data/ext/qiita_marker/qfm_mention_no_emphasis.c +1 -1
  12. data/ext/qiita_marker/qiita_marker.c +30 -44
  13. data/ext/qiita_marker/scanners.c +2438 -2450
  14. data/ext/qiita_marker/table.c +28 -2
  15. data/lib/qiita_marker/config.rb +5 -3
  16. data/lib/qiita_marker/node/inspect.rb +8 -18
  17. data/lib/qiita_marker/node.rb +6 -6
  18. data/lib/qiita_marker/renderer/html_renderer.rb +39 -39
  19. data/lib/qiita_marker/renderer.rb +5 -5
  20. data/lib/qiita_marker/version.rb +1 -1
  21. data/lib/qiita_marker.rb +9 -11
  22. data/qiita_marker.gemspec +27 -29
  23. metadata +3 -61
  24. data/test/benchmark.rb +0 -32
  25. data/test/fixtures/curly.md +0 -1
  26. data/test/fixtures/dingus.md +0 -10
  27. data/test/fixtures/strong.md +0 -1
  28. data/test/fixtures/table.md +0 -10
  29. data/test/test_attributes.rb +0 -24
  30. data/test/test_basics.rb +0 -35
  31. data/test/test_commands.rb +0 -72
  32. data/test/test_commonmark.rb +0 -36
  33. data/test/test_doc.rb +0 -130
  34. data/test/test_encoding.rb +0 -23
  35. data/test/test_extensions.rb +0 -116
  36. data/test/test_footnotes.rb +0 -60
  37. data/test/test_gc.rb +0 -47
  38. data/test/test_helper.rb +0 -71
  39. data/test/test_linebreaks.rb +0 -15
  40. data/test/test_maliciousness.rb +0 -262
  41. data/test/test_node.rb +0 -89
  42. data/test/test_options.rb +0 -37
  43. data/test/test_pathological_inputs.rb +0 -94
  44. data/test/test_plaintext.rb +0 -46
  45. data/test/test_qfm_code_data_metadata.rb +0 -26
  46. data/test/test_qfm_custom_block.rb +0 -23
  47. data/test/test_qfm_mention_no_emphasis.rb +0 -60
  48. data/test/test_renderer.rb +0 -47
  49. data/test/test_smartpunct.rb +0 -27
  50. data/test/test_spec.rb +0 -30
  51. data/test/test_tasklists.rb +0 -43
  52. data/test/test_xml.rb +0 -107
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class SmartPunctTest < Minitest::Test
6
- smart_punct = open_spec_file('smart_punct.txt')
7
-
8
- smart_punct.each do |testcase|
9
- doc = QiitaMarker.render_doc(testcase[:markdown], :SMART)
10
- html = QiitaMarker.render_html(testcase[:markdown], :SMART)
11
-
12
- define_method("test_smart_punct_example_#{testcase[:example]}") do
13
- doc_rendered = doc.to_html.strip
14
- html_rendered = html.strip
15
-
16
- assert_equal testcase[:html], doc_rendered, testcase[:markdown]
17
- assert_equal testcase[:html], html_rendered, testcase[:markdown]
18
- end
19
- end
20
-
21
- def test_smart_hardbreak_no_spaces_render_doc
22
- markdown = "\"foo\"\nbaz"
23
- result = "<p>“foo”<br />\nbaz</p>\n"
24
- doc = QiitaMarker.render_doc(markdown, :SMART)
25
- assert_equal result, doc.to_html([:HARDBREAKS])
26
- end
27
- end
data/test/test_spec.rb DELETED
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
- require 'json'
5
-
6
- class TestSpec < Minitest::Test
7
- spec = open_spec_file('spec.txt')
8
-
9
- spec.each do |testcase|
10
- next if testcase[:extensions].include?(:disabled)
11
-
12
- doc = QiitaMarker.render_doc(testcase[:markdown], :DEFAULT, testcase[:extensions])
13
-
14
- define_method("test_to_html_example_#{testcase[:example]}") do
15
- actual = doc.to_html(:UNSAFE, testcase[:extensions]).rstrip
16
- assert_equal testcase[:html], actual, testcase[:markdown]
17
- end
18
-
19
- define_method("test_html_renderer_example_#{testcase[:example]}") do
20
- actual = HtmlRenderer.new(options: :UNSAFE, extensions: testcase[:extensions]).render(doc).rstrip
21
- assert_equal testcase[:html], actual, testcase[:markdown]
22
- end
23
-
24
- define_method("test_sourcepos_example_#{testcase[:example]}") do
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
27
- assert_equal lhs, rhs, testcase[:markdown]
28
- end
29
- end
30
- end
@@ -1,43 +0,0 @@
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 = QiitaMarker.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, QiitaMarker::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 DELETED
@@ -1,107 +0,0 @@
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
- QiitaMarker.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">&quot;quotes&quot; should be escaped</text>
103
- </paragraph>
104
- </document>
105
- XML
106
- end
107
- end