commonmarker 0.23.10 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +1220 -0
  3. data/Cargo.toml +7 -0
  4. data/README.md +217 -170
  5. data/ext/commonmarker/Cargo.toml +20 -0
  6. data/ext/commonmarker/extconf.rb +3 -6
  7. data/ext/commonmarker/src/lib.rs +183 -0
  8. data/ext/commonmarker/src/node.rs +1095 -0
  9. data/ext/commonmarker/src/options.rs +165 -0
  10. data/ext/commonmarker/src/plugins/syntax_highlighting.rs +74 -0
  11. data/ext/commonmarker/src/plugins.rs +3 -0
  12. data/ext/commonmarker/src/utils.rs +8 -0
  13. data/lib/commonmarker/config.rb +90 -40
  14. data/lib/commonmarker/constants.rb +7 -0
  15. data/lib/commonmarker/extension.rb +14 -0
  16. data/lib/commonmarker/node/ast.rb +8 -0
  17. data/lib/commonmarker/node/inspect.rb +14 -4
  18. data/lib/commonmarker/node.rb +29 -47
  19. data/lib/commonmarker/renderer.rb +1 -127
  20. data/lib/commonmarker/utils.rb +22 -0
  21. data/lib/commonmarker/version.rb +2 -2
  22. data/lib/commonmarker.rb +27 -25
  23. metadata +38 -186
  24. data/Rakefile +0 -109
  25. data/bin/commonmarker +0 -118
  26. data/commonmarker.gemspec +0 -38
  27. data/ext/commonmarker/arena.c +0 -104
  28. data/ext/commonmarker/autolink.c +0 -508
  29. data/ext/commonmarker/autolink.h +0 -8
  30. data/ext/commonmarker/blocks.c +0 -1622
  31. data/ext/commonmarker/buffer.c +0 -278
  32. data/ext/commonmarker/buffer.h +0 -116
  33. data/ext/commonmarker/case_fold_switch.inc +0 -4327
  34. data/ext/commonmarker/chunk.h +0 -135
  35. data/ext/commonmarker/cmark-gfm-core-extensions.h +0 -54
  36. data/ext/commonmarker/cmark-gfm-extension_api.h +0 -737
  37. data/ext/commonmarker/cmark-gfm-extensions_export.h +0 -42
  38. data/ext/commonmarker/cmark-gfm.h +0 -833
  39. data/ext/commonmarker/cmark-gfm_export.h +0 -42
  40. data/ext/commonmarker/cmark-gfm_version.h +0 -7
  41. data/ext/commonmarker/cmark.c +0 -55
  42. data/ext/commonmarker/cmark_ctype.c +0 -44
  43. data/ext/commonmarker/cmark_ctype.h +0 -33
  44. data/ext/commonmarker/commonmark.c +0 -514
  45. data/ext/commonmarker/commonmarker.c +0 -1308
  46. data/ext/commonmarker/commonmarker.h +0 -16
  47. data/ext/commonmarker/config.h +0 -76
  48. data/ext/commonmarker/core-extensions.c +0 -27
  49. data/ext/commonmarker/entities.inc +0 -2138
  50. data/ext/commonmarker/ext_scanners.c +0 -879
  51. data/ext/commonmarker/ext_scanners.h +0 -24
  52. data/ext/commonmarker/footnotes.c +0 -63
  53. data/ext/commonmarker/footnotes.h +0 -27
  54. data/ext/commonmarker/houdini.h +0 -57
  55. data/ext/commonmarker/houdini_href_e.c +0 -100
  56. data/ext/commonmarker/houdini_html_e.c +0 -66
  57. data/ext/commonmarker/houdini_html_u.c +0 -149
  58. data/ext/commonmarker/html.c +0 -502
  59. data/ext/commonmarker/html.h +0 -27
  60. data/ext/commonmarker/inlines.c +0 -1788
  61. data/ext/commonmarker/inlines.h +0 -29
  62. data/ext/commonmarker/iterator.c +0 -159
  63. data/ext/commonmarker/iterator.h +0 -26
  64. data/ext/commonmarker/latex.c +0 -468
  65. data/ext/commonmarker/linked_list.c +0 -37
  66. data/ext/commonmarker/man.c +0 -274
  67. data/ext/commonmarker/map.c +0 -129
  68. data/ext/commonmarker/map.h +0 -44
  69. data/ext/commonmarker/node.c +0 -1045
  70. data/ext/commonmarker/node.h +0 -167
  71. data/ext/commonmarker/parser.h +0 -59
  72. data/ext/commonmarker/plaintext.c +0 -218
  73. data/ext/commonmarker/plugin.c +0 -36
  74. data/ext/commonmarker/plugin.h +0 -34
  75. data/ext/commonmarker/references.c +0 -43
  76. data/ext/commonmarker/references.h +0 -26
  77. data/ext/commonmarker/registry.c +0 -63
  78. data/ext/commonmarker/registry.h +0 -24
  79. data/ext/commonmarker/render.c +0 -213
  80. data/ext/commonmarker/render.h +0 -62
  81. data/ext/commonmarker/scanners.c +0 -14056
  82. data/ext/commonmarker/scanners.h +0 -70
  83. data/ext/commonmarker/scanners.re +0 -341
  84. data/ext/commonmarker/strikethrough.c +0 -167
  85. data/ext/commonmarker/strikethrough.h +0 -9
  86. data/ext/commonmarker/syntax_extension.c +0 -149
  87. data/ext/commonmarker/syntax_extension.h +0 -34
  88. data/ext/commonmarker/table.c +0 -917
  89. data/ext/commonmarker/table.h +0 -12
  90. data/ext/commonmarker/tagfilter.c +0 -60
  91. data/ext/commonmarker/tagfilter.h +0 -8
  92. data/ext/commonmarker/tasklist.c +0 -156
  93. data/ext/commonmarker/tasklist.h +0 -8
  94. data/ext/commonmarker/utf8.c +0 -317
  95. data/ext/commonmarker/utf8.h +0 -35
  96. data/ext/commonmarker/xml.c +0 -182
  97. data/lib/commonmarker/renderer/html_renderer.rb +0 -256
@@ -3,133 +3,7 @@
3
3
  require "set"
4
4
  require "stringio"
5
5
 
6
- module CommonMarker
6
+ module Commonmarker
7
7
  class Renderer
8
- attr_accessor :in_tight, :warnings, :in_plain
9
-
10
- def initialize(options: :DEFAULT, extensions: [])
11
- @opts = Config.process_options(options, :render)
12
- @stream = StringIO.new(+"")
13
- @need_blocksep = false
14
- @warnings = Set.new([])
15
- @in_tight = false
16
- @in_plain = false
17
- @tagfilter = extensions.include?(:tagfilter)
18
- end
19
-
20
- def out(*args)
21
- args.each do |arg|
22
- case arg
23
- when :children
24
- @node.each { |child| out(child) }
25
- when Array
26
- arg.each { |x| render(x) }
27
- when Node
28
- render(arg)
29
- else
30
- @stream.write(arg)
31
- end
32
- end
33
- end
34
-
35
- def render(node)
36
- @node = node
37
- if node.type == :document
38
- document(node)
39
- @stream.string
40
- elsif @in_plain && node.type != :text && node.type != :softbreak
41
- node.each { |child| render(child) }
42
- else
43
- begin
44
- send(node.type, node)
45
- rescue NoMethodError => e
46
- @warnings.add("WARNING: #{node.type} not implemented.")
47
- raise e
48
- end
49
- end
50
- end
51
-
52
- def document(_node)
53
- out(:children)
54
- end
55
-
56
- def code_block(node)
57
- code_block(node)
58
- end
59
-
60
- def reference_def(_node); end
61
-
62
- def cr
63
- return if @stream.string.empty? || @stream.string[-1] == "\n"
64
-
65
- out("\n")
66
- end
67
-
68
- def blocksep
69
- out("\n")
70
- end
71
-
72
- def containersep
73
- cr unless @in_tight
74
- end
75
-
76
- def block
77
- cr
78
- yield
79
- cr
80
- end
81
-
82
- def container(starter, ender)
83
- out(starter)
84
- yield
85
- out(ender)
86
- end
87
-
88
- def plain
89
- old_in_plain = @in_plain
90
- @in_plain = true
91
- yield
92
- @in_plain = old_in_plain
93
- end
94
-
95
- private
96
-
97
- def escape_href(str)
98
- @node.html_escape_href(str)
99
- end
100
-
101
- def escape_html(str)
102
- @node.html_escape_html(str)
103
- end
104
-
105
- def tagfilter(str)
106
- if @tagfilter
107
- str.gsub(
108
- %r{
109
- <
110
- (
111
- title|textarea|style|xmp|iframe|
112
- noembed|noframes|script|plaintext
113
- )
114
- (?=\s|>|/>)
115
- }xi,
116
- '&lt;\1',
117
- )
118
- else
119
- str
120
- end
121
- end
122
-
123
- def sourcepos(node)
124
- return "" unless option_enabled?(:SOURCEPOS)
125
-
126
- s = node.sourcepos
127
- " data-sourcepos=\"#{s[:start_line]}:#{s[:start_column]}-" \
128
- "#{s[:end_line]}:#{s[:end_column]}\""
129
- end
130
-
131
- def option_enabled?(opt)
132
- (@opts & CommonMarker::Config::OPTS.dig(:render, opt)) != 0
133
- end
134
8
  end
135
9
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "commonmarker/constants"
4
+
5
+ module Commonmarker
6
+ module Utils
7
+ include Commonmarker::Constants
8
+
9
+ def fetch_kv(option, key, value, type)
10
+ value_klass = value.class
11
+
12
+ if Constants::BOOLS.include?(value) && BOOLS.include?(option[key])
13
+ option[key]
14
+ elsif option[key].is_a?(value_klass)
15
+ option[key]
16
+ else
17
+ expected_type = Constants::BOOLS.include?(value) ? "Boolean" : value_klass.to_s
18
+ raise TypeError, "#{type} option `:#{key}` must be #{expected_type}; got #{option[key].class}"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module CommonMarker
4
- VERSION = "0.23.10"
3
+ module Commonmarker
4
+ VERSION = "1.1.1"
5
5
  end
data/lib/commonmarker.rb CHANGED
@@ -1,45 +1,47 @@
1
- #!/usr/bin/env ruby
2
1
  # frozen_string_literal: true
3
2
 
4
- require "commonmarker/commonmarker"
5
- require "commonmarker/config"
3
+ require_relative "commonmarker/extension"
4
+
5
+ require "commonmarker/utils"
6
6
  require "commonmarker/node"
7
+ require "commonmarker/config"
7
8
  require "commonmarker/renderer"
8
- require "commonmarker/renderer/html_renderer"
9
9
  require "commonmarker/version"
10
10
 
11
- begin
12
- require "awesome_print"
13
- rescue LoadError; end # rubocop:disable Lint/SuppressedException
14
- module CommonMarker
11
+ module Commonmarker
15
12
  class << self
16
- # Public: Parses a Markdown string into an HTML string.
13
+ # Public: Parses a CommonMark string into an HTML string.
17
14
  #
18
15
  # text - A {String} of text
19
- # option - Either a {Symbol} or {Array of Symbol}s indicating the render options
20
- # extensions - An {Array of Symbol}s indicating the extensions to use
16
+ # options - A {Hash} of render, parse, and extension options to transform the text.
21
17
  #
22
- # Returns a {String} of converted HTML.
23
- def render_html(text, options = :DEFAULT, extensions = [])
18
+ # Returns the `parser` node.
19
+ def parse(text, options: Commonmarker::Config::OPTIONS)
24
20
  raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
21
+ raise TypeError, "text must be UTF-8 encoded; got #{text.encoding}!" unless text.encoding.name == "UTF-8"
22
+ raise TypeError, "options must be a Hash; got a #{options.class}!" unless options.is_a?(Hash)
23
+
24
+ opts = Config.process_options(options)
25
25
 
26
- opts = Config.process_options(options, :render)
27
- Node.markdown_to_html(text.encode("UTF-8"), opts, extensions)
26
+ commonmark_parse(text, options: opts)
28
27
  end
29
28
 
30
- # Public: Parses a Markdown string into a `document` node.
29
+ # Public: Parses a CommonMark string into an HTML string.
31
30
  #
32
- # string - {String} to be parsed
33
- # option - A {Symbol} or {Array of Symbol}s indicating the parse options
34
- # extensions - An {Array of Symbol}s indicating the extensions to use
31
+ # text - A {String} of text
32
+ # options - A {Hash} of render, parse, and extension options to transform the text.
33
+ # plugins - A {Hash} of additional plugins.
35
34
  #
36
- # Returns the `document` node.
37
- def render_doc(text, options = :DEFAULT, extensions = [])
35
+ # Returns a {String} of converted HTML.
36
+ def to_html(text, options: Commonmarker::Config::OPTIONS, plugins: Commonmarker::Config::PLUGINS)
38
37
  raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
38
+ raise TypeError, "text must be UTF-8 encoded; got #{text.encoding}!" unless text.encoding.name == "UTF-8"
39
+ raise TypeError, "options must be a Hash; got a #{options.class}!" unless options.is_a?(Hash)
39
40
 
40
- opts = Config.process_options(options, :parse)
41
- text = text.encode("UTF-8")
42
- Node.parse_document(text, text.bytesize, opts, extensions)
41
+ opts = Config.process_options(options)
42
+ plugins = Config.process_plugins(plugins)
43
+
44
+ commonmark_to_html(text, options: opts, plugins: plugins)
43
45
  end
44
- end
46
+ end
45
47
  end
metadata CHANGED
@@ -1,262 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: commonmarker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.10
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
8
  - Ashe Connor
9
9
  autorequire:
10
- bindir: bin
10
+ bindir: exe
11
11
  cert_chain: []
12
- date: 2023-07-31 00:00:00.000000000 Z
12
+ date: 2024-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: awesome_print
15
+ name: rb_sys
16
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
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - "~>"
33
- - !ruby/object:Gem::Version
34
- version: '2.3'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '2.3'
42
- - !ruby/object:Gem::Dependency
43
- name: minitest
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '5.6'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
17
  requirements:
53
18
  - - "~>"
54
19
  - !ruby/object:Gem::Version
55
- version: '5.6'
56
- - !ruby/object:Gem::Dependency
57
- name: minitest-focus
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '1.1'
63
- type: :development
20
+ version: '0.9'
21
+ type: :runtime
64
22
  prerelease: false
65
23
  version_requirements: !ruby/object:Gem::Requirement
66
24
  requirements:
67
25
  - - "~>"
68
26
  - !ruby/object:Gem::Version
69
- version: '1.1'
27
+ version: '0.9'
28
+ force_ruby_platform: false
70
29
  - !ruby/object:Gem::Dependency
71
30
  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'
84
- - !ruby/object:Gem::Dependency
85
- name: rake-compiler
86
31
  requirement: !ruby/object:Gem::Requirement
87
32
  requirements:
88
33
  - - "~>"
89
34
  - !ruby/object:Gem::Version
90
- version: '0.9'
35
+ version: '13.0'
91
36
  type: :development
92
37
  prerelease: false
93
38
  version_requirements: !ruby/object:Gem::Requirement
94
39
  requirements:
95
40
  - - "~>"
96
41
  - !ruby/object:Gem::Version
97
- version: '0.9'
42
+ version: '13.0'
98
43
  - !ruby/object:Gem::Dependency
99
- name: rdoc
44
+ name: rake-compiler
100
45
  requirement: !ruby/object:Gem::Requirement
101
46
  requirements:
102
47
  - - "~>"
103
48
  - !ruby/object:Gem::Version
104
- version: '6.2'
49
+ version: '1.2'
105
50
  type: :development
106
51
  prerelease: false
107
52
  version_requirements: !ruby/object:Gem::Requirement
108
53
  requirements:
109
54
  - - "~>"
110
55
  - !ruby/object:Gem::Version
111
- version: '6.2'
112
- - !ruby/object:Gem::Dependency
113
- name: rubocop
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: rubocop-standard
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: '0'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: '0'
140
- description: A fast, safe, extensible parser for CommonMark. This wraps the official
141
- libcmark library.
56
+ version: '1.2'
57
+ description: A fast, safe, extensible parser for CommonMark. This wraps the comrak
58
+ Rust crate.
142
59
  email:
143
- executables:
144
- - commonmarker
60
+ executables: []
145
61
  extensions:
146
62
  - ext/commonmarker/extconf.rb
147
63
  extra_rdoc_files: []
148
64
  files:
65
+ - Cargo.lock
66
+ - Cargo.toml
149
67
  - LICENSE.txt
150
68
  - README.md
151
- - Rakefile
152
- - bin/commonmarker
153
- - commonmarker.gemspec
154
- - ext/commonmarker/arena.c
155
- - ext/commonmarker/autolink.c
156
- - ext/commonmarker/autolink.h
157
- - ext/commonmarker/blocks.c
158
- - ext/commonmarker/buffer.c
159
- - ext/commonmarker/buffer.h
160
- - ext/commonmarker/case_fold_switch.inc
161
- - ext/commonmarker/chunk.h
162
- - ext/commonmarker/cmark-gfm-core-extensions.h
163
- - ext/commonmarker/cmark-gfm-extension_api.h
164
- - ext/commonmarker/cmark-gfm-extensions_export.h
165
- - ext/commonmarker/cmark-gfm.h
166
- - ext/commonmarker/cmark-gfm_export.h
167
- - ext/commonmarker/cmark-gfm_version.h
168
- - ext/commonmarker/cmark.c
169
- - ext/commonmarker/cmark_ctype.c
170
- - ext/commonmarker/cmark_ctype.h
171
- - ext/commonmarker/commonmark.c
172
- - ext/commonmarker/commonmarker.c
173
- - ext/commonmarker/commonmarker.h
174
- - ext/commonmarker/config.h
175
- - ext/commonmarker/core-extensions.c
176
- - ext/commonmarker/entities.inc
177
- - ext/commonmarker/ext_scanners.c
178
- - ext/commonmarker/ext_scanners.h
69
+ - ext/commonmarker/Cargo.toml
179
70
  - ext/commonmarker/extconf.rb
180
- - ext/commonmarker/footnotes.c
181
- - ext/commonmarker/footnotes.h
182
- - ext/commonmarker/houdini.h
183
- - ext/commonmarker/houdini_href_e.c
184
- - ext/commonmarker/houdini_html_e.c
185
- - ext/commonmarker/houdini_html_u.c
186
- - ext/commonmarker/html.c
187
- - ext/commonmarker/html.h
188
- - ext/commonmarker/inlines.c
189
- - ext/commonmarker/inlines.h
190
- - ext/commonmarker/iterator.c
191
- - ext/commonmarker/iterator.h
192
- - ext/commonmarker/latex.c
193
- - ext/commonmarker/linked_list.c
194
- - ext/commonmarker/man.c
195
- - ext/commonmarker/map.c
196
- - ext/commonmarker/map.h
197
- - ext/commonmarker/node.c
198
- - ext/commonmarker/node.h
199
- - ext/commonmarker/parser.h
200
- - ext/commonmarker/plaintext.c
201
- - ext/commonmarker/plugin.c
202
- - ext/commonmarker/plugin.h
203
- - ext/commonmarker/references.c
204
- - ext/commonmarker/references.h
205
- - ext/commonmarker/registry.c
206
- - ext/commonmarker/registry.h
207
- - ext/commonmarker/render.c
208
- - ext/commonmarker/render.h
209
- - ext/commonmarker/scanners.c
210
- - ext/commonmarker/scanners.h
211
- - ext/commonmarker/scanners.re
212
- - ext/commonmarker/strikethrough.c
213
- - ext/commonmarker/strikethrough.h
214
- - ext/commonmarker/syntax_extension.c
215
- - ext/commonmarker/syntax_extension.h
216
- - ext/commonmarker/table.c
217
- - ext/commonmarker/table.h
218
- - ext/commonmarker/tagfilter.c
219
- - ext/commonmarker/tagfilter.h
220
- - ext/commonmarker/tasklist.c
221
- - ext/commonmarker/tasklist.h
222
- - ext/commonmarker/utf8.c
223
- - ext/commonmarker/utf8.h
224
- - ext/commonmarker/xml.c
71
+ - ext/commonmarker/src/lib.rs
72
+ - ext/commonmarker/src/node.rs
73
+ - ext/commonmarker/src/options.rs
74
+ - ext/commonmarker/src/plugins.rs
75
+ - ext/commonmarker/src/plugins/syntax_highlighting.rs
76
+ - ext/commonmarker/src/utils.rs
225
77
  - lib/commonmarker.rb
226
78
  - lib/commonmarker/config.rb
79
+ - lib/commonmarker/constants.rb
80
+ - lib/commonmarker/extension.rb
227
81
  - lib/commonmarker/node.rb
82
+ - lib/commonmarker/node/ast.rb
228
83
  - lib/commonmarker/node/inspect.rb
229
84
  - lib/commonmarker/renderer.rb
230
- - lib/commonmarker/renderer/html_renderer.rb
85
+ - lib/commonmarker/utils.rb
231
86
  - lib/commonmarker/version.rb
232
87
  homepage: https://github.com/gjtorikian/commonmarker
233
88
  licenses:
234
89
  - MIT
235
90
  metadata:
91
+ allowed_push_host: https://rubygems.org
92
+ funding_uri: https://github.com/sponsors/gjtorikian/
93
+ source_code_uri: https://github.com/gjtorikian/commonmarker
236
94
  rubygems_mfa_required: 'true'
237
95
  post_install_message:
238
- rdoc_options:
239
- - "-x"
240
- - ext/commonmarker/cmark/.*
96
+ rdoc_options: []
241
97
  require_paths:
242
98
  - lib
243
- - ext
244
99
  required_ruby_version: !ruby/object:Gem::Requirement
245
100
  requirements:
246
- - - ">="
247
- - !ruby/object:Gem::Version
248
- version: '2.6'
249
- - - "<"
101
+ - - "~>"
250
102
  - !ruby/object:Gem::Version
251
- version: '4.0'
103
+ version: '3.1'
252
104
  required_rubygems_version: !ruby/object:Gem::Requirement
253
105
  requirements:
254
106
  - - ">="
255
107
  - !ruby/object:Gem::Version
256
- version: '0'
108
+ version: 3.3.22
257
109
  requirements: []
258
- rubygems_version: 3.3.26
110
+ rubygems_version: 3.5.3
259
111
  signing_key:
260
112
  specification_version: 4
261
- summary: CommonMark parser and renderer. Written in C, wrapped in Ruby.
113
+ summary: CommonMark parser and renderer. Written in Rust, wrapped in Ruby.
262
114
  test_files: []
data/Rakefile DELETED
@@ -1,109 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "date"
4
- require "rake/clean"
5
- require "rake/extensiontask"
6
- require "digest/md5"
7
-
8
- host_os = RbConfig::CONFIG["host_os"]
9
- require "devkit" if host_os == "mingw32"
10
-
11
- task default: [:test]
12
-
13
- # Gem Spec
14
- gem_spec = Gem::Specification.load("commonmarker.gemspec")
15
-
16
- # Ruby Extension
17
- Rake::ExtensionTask.new("commonmarker", gem_spec) do |ext|
18
- ext.lib_dir = File.join("lib", "commonmarker")
19
- end
20
-
21
- # Packaging
22
- require "bundler/gem_tasks"
23
-
24
- # Testing
25
- require "rake/testtask"
26
-
27
- Rake::TestTask.new("test:unit") do |t|
28
- t.libs << "lib"
29
- t.libs << "test"
30
- t.pattern = "test/test_*.rb"
31
- t.verbose = true
32
- t.warning = false
33
- end
34
-
35
- desc "Run unit tests"
36
- task "test:unit" => :compile
37
-
38
- desc "Run unit and conformance tests"
39
- task test: ["test:unit"]
40
-
41
- require "rubocop/rake_task"
42
-
43
- RuboCop::RakeTask.new(:rubocop)
44
-
45
- desc "Run benchmarks"
46
- task :benchmark do
47
- if ENV["FETCH_PROGIT"]
48
- %x(rm -rf test/progit)
49
- %x(git clone https://github.com/progit/progit.git test/progit)
50
- langs = ["ar", "az", "be", "ca", "cs", "de", "en", "eo", "es", "es-ni", "fa", "fi", "fr", "hi", "hu", "id", "it", "ja", "ko", "mk", "nl", "no-nb", "pl", "pt-br", "ro", "ru", "sr", "th", "tr", "uk", "vi", "zh", "zh-tw"]
51
- langs.each do |lang|
52
- %x(cat test/progit/#{lang}/*/*.markdown >> test/benchinput.md)
53
- end
54
- end
55
- $LOAD_PATH.unshift("lib")
56
- load "test/benchmark.rb"
57
- end
58
-
59
- desc "Match C style of cmark"
60
- task :format do
61
- sh "clang-format -style llvm -i ext/commonmarker/*.c ext/commonmarker/*.h"
62
- end
63
-
64
- # Documentation
65
- require "rdoc/task"
66
-
67
- desc "Generate API documentation"
68
- RDoc::Task.new do |rd|
69
- rd.rdoc_dir = "docs"
70
- rd.main = "README.md"
71
- rd.rdoc_files.include("README.md", "lib/**/*.rb", "ext/commonmarker/commonmarker.c")
72
-
73
- rd.options << "--markup tomdoc"
74
- rd.options << "--inline-source"
75
- rd.options << "--line-numbers"
76
- rd.options << "--all"
77
- rd.options << "--fileboxes"
78
- end
79
-
80
- desc "Generate the documentation and run a web server"
81
- task serve: [:rdoc] do
82
- require "webrick"
83
-
84
- puts "Navigate to http://localhost:3000 to see the docs"
85
-
86
- server = WEBrick::HTTPServer.new(Port: 3000)
87
- server.mount("/", WEBrick::HTTPServlet::FileHandler, "docs")
88
- trap("INT") { server.stop }
89
- server.start
90
- end
91
-
92
- desc "Generate and publish docs to gh-pages"
93
- task publish: [:rdoc] do
94
- require "tmpdir"
95
- require "shellwords"
96
-
97
- Dir.mktmpdir do |tmp|
98
- system "mv docs/* #{tmp}"
99
- system "git checkout origin/gh-pages"
100
- system "rm -rf *"
101
- system "mv #{tmp}/* ."
102
- message = Shellwords.escape("Site updated at #{Time.now.utc}")
103
- system "git add ."
104
- system "git commit -am #{message}"
105
- system "git push origin gh-pages --force"
106
- system "git checkout master"
107
- system "echo yolo"
108
- end
109
- end