qiita_marker 0.23.2.1 → 0.23.5.0

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.
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