mdl 0.13.0 → 0.15.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.
- checksums.yaml +4 -4
- data/Gemfile +10 -1
- data/lib/mdl/doc.rb +1 -1
- data/lib/mdl/formatters/sarif.rb +1 -1
- data/lib/mdl/rules.rb +10 -99
- data/lib/mdl/ruleset.rb +4 -65
- data/lib/mdl/style.rb +0 -2
- data/lib/mdl/version.rb +1 -1
- data/lib/mdl.rb +4 -4
- data/mdl.gemspec +3 -9
- metadata +8 -102
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b0bf6bf60ca7328cdc7b7c979b1c7f9eea59f99c35a219da0eddf8c73e529cc
|
|
4
|
+
data.tar.gz: 954a6871342a9137babebe806cab333bbf883d835cdc1ff867731145fb52d85f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 987343bbcf9c9a260e205970c1ea1bba1c5eb8dc5e0d2f3ed03013126efdf58a65085275f24081019d27fe63c02ce0ebbe0dded59e265392833f19cd00b582dd
|
|
7
|
+
data.tar.gz: aa09c154c250f31e0f0ad9cefc8b1e243562a836c9d2c1d740aa7d5d20eac38ea91f56dd73c7a6d1d8aa5ab57b0ba41143013372a65eb208411d3b8ebe4b53bf
|
data/Gemfile
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
source 'https://
|
|
1
|
+
source 'https://gem.coop'
|
|
2
2
|
gemspec
|
|
3
|
+
|
|
4
|
+
group :development, :test do
|
|
5
|
+
gem 'base64'
|
|
6
|
+
gem 'bundler', '>= 1.12', '< 3'
|
|
7
|
+
gem 'minitest', '~> 5.26', '>= 5.26.2'
|
|
8
|
+
gem 'pry', '~> 0.15.2'
|
|
9
|
+
gem 'rake', '~> 13.3', '>= 13.3.1'
|
|
10
|
+
gem 'rubocop', '~> 1.81'
|
|
11
|
+
end
|
data/lib/mdl/doc.rb
CHANGED
|
@@ -282,7 +282,7 @@ module MarkdownLint
|
|
|
282
282
|
# returned and we'll just not catch that part of the text, which seems
|
|
283
283
|
# like a sensible failure mode.
|
|
284
284
|
element.children.map do |e|
|
|
285
|
-
if
|
|
285
|
+
if %i{text codespan}.include?(e.type)
|
|
286
286
|
e.value
|
|
287
287
|
elsif %i{strong em p a}.include?(e.type)
|
|
288
288
|
extract_as_text(e).join("\n")
|
data/lib/mdl/formatters/sarif.rb
CHANGED
|
@@ -8,7 +8,7 @@ module MarkdownLint
|
|
|
8
8
|
class << self
|
|
9
9
|
def generate(rules, results)
|
|
10
10
|
matched_rules_id = results.map { |result| result['rule'] }.uniq
|
|
11
|
-
matched_rules = rules.
|
|
11
|
+
matched_rules = rules.slice(*matched_rules_id)
|
|
12
12
|
JSON.generate(generate_sarif(matched_rules, results))
|
|
13
13
|
end
|
|
14
14
|
|
data/lib/mdl/rules.rb
CHANGED
|
@@ -51,8 +51,8 @@ rule 'MD003', 'Header style' do
|
|
|
51
51
|
if doc_style == :setext_with_atx
|
|
52
52
|
headers.map do |h|
|
|
53
53
|
doc.element_linenumber(h) \
|
|
54
|
-
unless (doc.header_style(h) == :setext) ||
|
|
55
|
-
((doc.header_style(h) == :atx) &&
|
|
54
|
+
unless (doc.header_style(h) == :setext) ||
|
|
55
|
+
((doc.header_style(h) == :atx) &&
|
|
56
56
|
(h.options[:level] > 2))
|
|
57
57
|
end.compact
|
|
58
58
|
else
|
|
@@ -180,7 +180,7 @@ rule 'MD010', 'Hard tabs' do
|
|
|
180
180
|
# inside of a code block are acceptable.
|
|
181
181
|
codeblock_lines = doc.find_type_elements(:codeblock).map do |e|
|
|
182
182
|
(doc.element_linenumber(e)..
|
|
183
|
-
doc.element_linenumber(e) + e.value.lines.count).to_a
|
|
183
|
+
(doc.element_linenumber(e) + e.value.lines.count)).to_a
|
|
184
184
|
end.flatten
|
|
185
185
|
|
|
186
186
|
# Check for lines with hard tab
|
|
@@ -207,7 +207,7 @@ rule 'MD012', 'Multiple consecutive blank lines' do
|
|
|
207
207
|
# inside of a code block are acceptable.
|
|
208
208
|
codeblock_lines = doc.find_type_elements(:codeblock).map do |e|
|
|
209
209
|
(doc.element_linenumber(e)..
|
|
210
|
-
doc.element_linenumber(e) + e.value.lines.count).to_a
|
|
210
|
+
(doc.element_linenumber(e) + e.value.lines.count)).to_a
|
|
211
211
|
end.flatten
|
|
212
212
|
blank_lines = doc.matching_lines(/^\s*$/)
|
|
213
213
|
cons_blank_lines = blank_lines.each_cons(2).select do |p, n|
|
|
@@ -227,7 +227,7 @@ rule 'MD013', 'Line length' do
|
|
|
227
227
|
# Every line in the document that is part of a code block.
|
|
228
228
|
codeblock_lines = doc.find_type_elements(:codeblock).map do |e|
|
|
229
229
|
(doc.element_linenumber(e)..
|
|
230
|
-
doc.element_linenumber(e) + e.value.lines.count).to_a
|
|
230
|
+
(doc.element_linenumber(e) + e.value.lines.count)).to_a
|
|
231
231
|
end.flatten
|
|
232
232
|
# Every line in the document that is part of a table.
|
|
233
233
|
locations = doc.elements
|
|
@@ -236,7 +236,7 @@ rule 'MD013', 'Line length' do
|
|
|
236
236
|
table_lines = locations.map.with_index do |(l, e), i|
|
|
237
237
|
if e.type == :table
|
|
238
238
|
if i + 1 < locations.size
|
|
239
|
-
(l..locations[i + 1].first - 1).to_a
|
|
239
|
+
(l..(locations[i + 1].first - 1)).to_a
|
|
240
240
|
else
|
|
241
241
|
(l..doc.lines.count).to_a
|
|
242
242
|
end
|
|
@@ -247,7 +247,7 @@ rule 'MD013', 'Line length' do
|
|
|
247
247
|
overlines -= codeblock_lines
|
|
248
248
|
unless params[:code_blocks]
|
|
249
249
|
warn 'MD013 warning: Parameter :code_blocks is deprecated.'
|
|
250
|
-
warn ' Please replace \":code_blocks => false\" by '\
|
|
250
|
+
warn ' Please replace \":code_blocks => false\" by ' \
|
|
251
251
|
'\":ignore_code_blocks => true\" in your configuration.'
|
|
252
252
|
end
|
|
253
253
|
end
|
|
@@ -543,7 +543,7 @@ rule 'MD030', 'Spaces after list markers' do
|
|
|
543
543
|
next if line.empty?
|
|
544
544
|
|
|
545
545
|
actual_spaces = line.gsub(/^> /, '').match(/^\s*\S+(\s+)/)[1].length
|
|
546
|
-
required_spaces = params["#{list_type}_#{srule}"
|
|
546
|
+
required_spaces = params[:"#{list_type}_#{srule}"]
|
|
547
547
|
errors << doc.element_linenumber(i) if required_spaces != actual_spaces
|
|
548
548
|
end
|
|
549
549
|
end
|
|
@@ -597,7 +597,7 @@ rule 'MD032', 'Lists should be surrounded by blank lines' do
|
|
|
597
597
|
next if line.strip == '{:toc}'
|
|
598
598
|
|
|
599
599
|
unless in_code
|
|
600
|
-
list_marker = line.strip.match(/^([
|
|
600
|
+
list_marker = line.strip.match(/^([*+-]|(\d+\.))\s/)
|
|
601
601
|
if list_marker && !in_list && !prev_line.match(/^($|\s)/)
|
|
602
602
|
errors << (linenum + 1)
|
|
603
603
|
elsif !list_marker && in_list && !line.match(/^($|\s)/)
|
|
@@ -692,7 +692,7 @@ rule 'MD037', 'Spaces inside emphasis markers' do
|
|
|
692
692
|
# Kramdown doesn't parse emphasis with spaces, which means we can just
|
|
693
693
|
# look for emphasis patterns inside regular text with spaces just inside
|
|
694
694
|
# them.
|
|
695
|
-
(doc.matching_text_element_lines(/\s(\*\*?|__?)\s.+\1/) |
|
|
695
|
+
(doc.matching_text_element_lines(/\s(\*\*?|__?)\s.+\1/) |
|
|
696
696
|
doc.matching_text_element_lines(/(\*\*?|__?).+\s\1\s/)).sort
|
|
697
697
|
end
|
|
698
698
|
end
|
|
@@ -799,92 +799,3 @@ rule 'MD047', 'File should end with a single newline character' do
|
|
|
799
799
|
error_lines
|
|
800
800
|
end
|
|
801
801
|
end
|
|
802
|
-
|
|
803
|
-
rule 'MD055', 'Table row doesn\'t begin/end with pipes' do
|
|
804
|
-
tags :tables
|
|
805
|
-
aliases 'table-rows-start-and-end-with-pipes'
|
|
806
|
-
check do |doc|
|
|
807
|
-
error_lines = []
|
|
808
|
-
tables = doc.find_type_elements(:table)
|
|
809
|
-
lines = doc.lines
|
|
810
|
-
|
|
811
|
-
tables.each do |table|
|
|
812
|
-
table_pos = table.options[:location] - 1
|
|
813
|
-
table_rows = get_table_rows(lines, table_pos)
|
|
814
|
-
|
|
815
|
-
table_rows.each_with_index do |line, index|
|
|
816
|
-
if line.length < 2 || line[0] != '|' || line[-1] != '|'
|
|
817
|
-
error_lines << (table_pos + index + 1)
|
|
818
|
-
end
|
|
819
|
-
end
|
|
820
|
-
end
|
|
821
|
-
|
|
822
|
-
error_lines
|
|
823
|
-
end
|
|
824
|
-
end
|
|
825
|
-
|
|
826
|
-
rule 'MD056', 'Table has inconsistent number of columns' do
|
|
827
|
-
tags :tables
|
|
828
|
-
aliases 'inconsistent-columns-in-table'
|
|
829
|
-
check do |doc|
|
|
830
|
-
error_lines = []
|
|
831
|
-
tables = doc.find_type_elements(:table)
|
|
832
|
-
lines = doc.lines
|
|
833
|
-
|
|
834
|
-
tables.each do |table|
|
|
835
|
-
table_pos = table.options[:location] - 1
|
|
836
|
-
table_rows = get_table_rows(lines, table_pos)
|
|
837
|
-
|
|
838
|
-
num_headings = number_of_columns_in_a_table_row(lines[table_pos])
|
|
839
|
-
|
|
840
|
-
table_rows.each_with_index do |line, index|
|
|
841
|
-
if number_of_columns_in_a_table_row(line) != num_headings
|
|
842
|
-
error_lines << (table_pos + index + 1)
|
|
843
|
-
end
|
|
844
|
-
end
|
|
845
|
-
end
|
|
846
|
-
|
|
847
|
-
error_lines
|
|
848
|
-
end
|
|
849
|
-
end
|
|
850
|
-
|
|
851
|
-
rule 'MD057', 'Table has missing or invalid header separation (second row)' do
|
|
852
|
-
tags :tables
|
|
853
|
-
aliases 'table-invalid-second-row'
|
|
854
|
-
check do |doc|
|
|
855
|
-
error_lines = []
|
|
856
|
-
tables = doc.find_type_elements(:table)
|
|
857
|
-
lines = doc.lines
|
|
858
|
-
|
|
859
|
-
tables.each do |table|
|
|
860
|
-
second_row = ''
|
|
861
|
-
|
|
862
|
-
# line number of table start (1-indexed)
|
|
863
|
-
# which is equal to second row's index (0-indexed)
|
|
864
|
-
line_num = table.options[:location]
|
|
865
|
-
second_row = lines[line_num] if line_num < lines.length
|
|
866
|
-
|
|
867
|
-
# This pattern matches if
|
|
868
|
-
# 1) The row starts and stops with | characters
|
|
869
|
-
# 2) Only consists of characters '|', '-', ':' and whitespace
|
|
870
|
-
# 3) Each section between the separators (i.e. '|')
|
|
871
|
-
# a) has at least three consecutive dashes
|
|
872
|
-
# b) can have whitespace at the beginning or the end
|
|
873
|
-
# c) can have colon before and/or after dashes (for alignment)
|
|
874
|
-
# Some examples:
|
|
875
|
-
# |-----|----|-------| --> matches
|
|
876
|
-
# |:---:|:---|-------| --> matches
|
|
877
|
-
# | :------: | ----| --> matches
|
|
878
|
-
# | - - - | - - - | --> does NOT match
|
|
879
|
-
# |::---| --> does NOT match
|
|
880
|
-
# |----:|:--|----| --> does NOT match
|
|
881
|
-
pattern = /^(\|\s*:?-{3,}:?\s*)+\|$/
|
|
882
|
-
unless second_row.match(pattern)
|
|
883
|
-
# Second row is not in the form described by the pattern
|
|
884
|
-
error_lines << (line_num + 1)
|
|
885
|
-
end
|
|
886
|
-
end
|
|
887
|
-
|
|
888
|
-
error_lines
|
|
889
|
-
end
|
|
890
|
-
end
|
data/lib/mdl/ruleset.rb
CHANGED
|
@@ -3,7 +3,7 @@ module MarkdownLint
|
|
|
3
3
|
class Rule
|
|
4
4
|
attr_accessor :id, :description
|
|
5
5
|
|
|
6
|
-
def initialize(id, description, fallback_docs: nil, &
|
|
6
|
+
def initialize(id, description, fallback_docs: nil, &)
|
|
7
7
|
@id = id
|
|
8
8
|
@description = description
|
|
9
9
|
@generate_docs = fallback_docs
|
|
@@ -11,7 +11,7 @@ module MarkdownLint
|
|
|
11
11
|
@aliases = []
|
|
12
12
|
@tags = []
|
|
13
13
|
@params = {}
|
|
14
|
-
instance_eval(&
|
|
14
|
+
instance_eval(&)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def check(&block)
|
|
@@ -48,67 +48,6 @@ module MarkdownLint
|
|
|
48
48
|
def docs_url
|
|
49
49
|
@generate_docs&.call(id, description)
|
|
50
50
|
end
|
|
51
|
-
|
|
52
|
-
# This method calculates the number of columns in a table row
|
|
53
|
-
#
|
|
54
|
-
# @param [String] table_row A row of the table in question.
|
|
55
|
-
# @return [Numeric] Number of columns in the row
|
|
56
|
-
def number_of_columns_in_a_table_row(table_row)
|
|
57
|
-
columns = table_row.strip.split('|')
|
|
58
|
-
|
|
59
|
-
if columns.empty?
|
|
60
|
-
# The stripped line consists of zero or more pipe characters
|
|
61
|
-
# and nothing more.
|
|
62
|
-
#
|
|
63
|
-
# Examples of stripped rows:
|
|
64
|
-
# '||' --> one column
|
|
65
|
-
# '|||' --> two columns
|
|
66
|
-
# '|' --> zero columns
|
|
67
|
-
[0, table_row.count('|') - 1].max
|
|
68
|
-
else
|
|
69
|
-
# Number of columns is the number of splited
|
|
70
|
-
# segments with pipe separator. The first segment
|
|
71
|
-
# is ignored when it's empty string because
|
|
72
|
-
# someting like '|1|2|' is split into ['', '1', '2']
|
|
73
|
-
# when using split('|') function.
|
|
74
|
-
#
|
|
75
|
-
# Some examples:
|
|
76
|
-
# '|foo|bar|' --> two columns
|
|
77
|
-
# ' |foo|bar|' --> two columns
|
|
78
|
-
# '|foo|bar' --> two columns
|
|
79
|
-
# 'foo|bar' --> two columns
|
|
80
|
-
columns.size - (columns[0].empty? ? 1 : 0)
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# This method returns all the rows of a table
|
|
85
|
-
#
|
|
86
|
-
# @param [Array<String>] lines Lines of a doc as an array
|
|
87
|
-
# @param [Numeric] pos Position/index of the table in the array
|
|
88
|
-
# @return [Array<String>] Rows of the table in an array
|
|
89
|
-
def get_table_rows(lines, pos)
|
|
90
|
-
table_rows = []
|
|
91
|
-
while pos < lines.length
|
|
92
|
-
line = lines[pos]
|
|
93
|
-
|
|
94
|
-
# If the previous line is a table and the current line
|
|
95
|
-
# 1) includes pipe character
|
|
96
|
-
# 2) does not start with code block identifiers
|
|
97
|
-
# a) >= 4 spaces
|
|
98
|
-
# b) < 4 spaces and ``` right after
|
|
99
|
-
#
|
|
100
|
-
# it is possibly a table row
|
|
101
|
-
unless line.include?('|') && !line.start_with?(' ') &&
|
|
102
|
-
!line.strip.start_with?('```')
|
|
103
|
-
break
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
table_rows << line
|
|
107
|
-
pos += 1
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
table_rows
|
|
111
|
-
end
|
|
112
51
|
end
|
|
113
52
|
|
|
114
53
|
# defines a ruleset
|
|
@@ -119,9 +58,9 @@ module MarkdownLint
|
|
|
119
58
|
@rules = {}
|
|
120
59
|
end
|
|
121
60
|
|
|
122
|
-
def rule(id, description, &
|
|
61
|
+
def rule(id, description, &)
|
|
123
62
|
@rules[id] =
|
|
124
|
-
Rule.new(id, description, :fallback_docs => @fallback_docs, &
|
|
63
|
+
Rule.new(id, description, :fallback_docs => @fallback_docs, &)
|
|
125
64
|
end
|
|
126
65
|
|
|
127
66
|
def load(rules_file)
|
data/lib/mdl/style.rb
CHANGED
data/lib/mdl/version.rb
CHANGED
data/lib/mdl.rb
CHANGED
|
@@ -27,21 +27,21 @@ module MarkdownLint
|
|
|
27
27
|
unless Config[:rules][:include].empty?
|
|
28
28
|
rules.select! do |r, v|
|
|
29
29
|
Config[:rules][:include].include?(r) or
|
|
30
|
-
|
|
30
|
+
Config[:rules][:include].intersect?(v.aliases)
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
unless Config[:rules][:exclude].empty?
|
|
34
34
|
rules.select! do |r, v|
|
|
35
35
|
!Config[:rules][:exclude].include?(r) and
|
|
36
|
-
|
|
36
|
+
!Config[:rules][:exclude].intersect?(v.aliases)
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
# Tag option filter
|
|
41
41
|
if Config[:tags]
|
|
42
|
-
rules.
|
|
42
|
+
rules.select! { |_r, v| v.tags.intersect?(Config[:tags][:include]) } \
|
|
43
43
|
unless Config[:tags][:include].empty?
|
|
44
|
-
rules.
|
|
44
|
+
rules.reject! { |_r, v| v.tags.intersect?(Config[:tags][:exclude]) } \
|
|
45
45
|
unless Config[:tags][:exclude].empty?
|
|
46
46
|
end
|
|
47
47
|
|
data/mdl.gemspec
CHANGED
|
@@ -19,17 +19,11 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.executables = %w{mdl}
|
|
20
20
|
spec.require_paths = ['lib']
|
|
21
21
|
|
|
22
|
-
spec.required_ruby_version = '>= 2
|
|
22
|
+
spec.required_ruby_version = '>= 3.2'
|
|
23
23
|
|
|
24
24
|
spec.add_dependency 'kramdown', '~> 2.3'
|
|
25
25
|
spec.add_dependency 'kramdown-parser-gfm', '~> 1.1'
|
|
26
|
-
spec.add_dependency 'mixlib-cli'
|
|
27
|
-
spec.add_dependency 'mixlib-config'
|
|
26
|
+
spec.add_dependency 'mixlib-cli'
|
|
27
|
+
spec.add_dependency 'mixlib-config'
|
|
28
28
|
spec.add_dependency 'mixlib-shellout'
|
|
29
|
-
|
|
30
|
-
spec.add_development_dependency 'bundler', '>= 1.12', '< 3'
|
|
31
|
-
spec.add_development_dependency 'minitest', '~> 5.9'
|
|
32
|
-
spec.add_development_dependency 'pry', '~> 0.10'
|
|
33
|
-
spec.add_development_dependency 'rake', '>= 11.2', '< 14'
|
|
34
|
-
spec.add_development_dependency 'rubocop', '~> 1.28.1'
|
|
35
29
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mdl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mark Harrison
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-11-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: kramdown
|
|
@@ -42,42 +42,30 @@ dependencies:
|
|
|
42
42
|
name: mixlib-cli
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '2.1'
|
|
48
45
|
- - ">="
|
|
49
46
|
- !ruby/object:Gem::Version
|
|
50
|
-
version:
|
|
47
|
+
version: '0'
|
|
51
48
|
type: :runtime
|
|
52
49
|
prerelease: false
|
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
54
51
|
requirements:
|
|
55
|
-
- - "~>"
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
version: '2.1'
|
|
58
52
|
- - ">="
|
|
59
53
|
- !ruby/object:Gem::Version
|
|
60
|
-
version:
|
|
54
|
+
version: '0'
|
|
61
55
|
- !ruby/object:Gem::Dependency
|
|
62
56
|
name: mixlib-config
|
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
|
64
58
|
requirements:
|
|
65
59
|
- - ">="
|
|
66
60
|
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
68
|
-
- - "<"
|
|
69
|
-
- !ruby/object:Gem::Version
|
|
70
|
-
version: '4'
|
|
61
|
+
version: '0'
|
|
71
62
|
type: :runtime
|
|
72
63
|
prerelease: false
|
|
73
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
74
65
|
requirements:
|
|
75
66
|
- - ">="
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
77
|
-
version:
|
|
78
|
-
- - "<"
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: '4'
|
|
68
|
+
version: '0'
|
|
81
69
|
- !ruby/object:Gem::Dependency
|
|
82
70
|
name: mixlib-shellout
|
|
83
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,88 +80,6 @@ dependencies:
|
|
|
92
80
|
- - ">="
|
|
93
81
|
- !ruby/object:Gem::Version
|
|
94
82
|
version: '0'
|
|
95
|
-
- !ruby/object:Gem::Dependency
|
|
96
|
-
name: bundler
|
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
|
98
|
-
requirements:
|
|
99
|
-
- - ">="
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: '1.12'
|
|
102
|
-
- - "<"
|
|
103
|
-
- !ruby/object:Gem::Version
|
|
104
|
-
version: '3'
|
|
105
|
-
type: :development
|
|
106
|
-
prerelease: false
|
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
-
requirements:
|
|
109
|
-
- - ">="
|
|
110
|
-
- !ruby/object:Gem::Version
|
|
111
|
-
version: '1.12'
|
|
112
|
-
- - "<"
|
|
113
|
-
- !ruby/object:Gem::Version
|
|
114
|
-
version: '3'
|
|
115
|
-
- !ruby/object:Gem::Dependency
|
|
116
|
-
name: minitest
|
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
|
118
|
-
requirements:
|
|
119
|
-
- - "~>"
|
|
120
|
-
- !ruby/object:Gem::Version
|
|
121
|
-
version: '5.9'
|
|
122
|
-
type: :development
|
|
123
|
-
prerelease: false
|
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
125
|
-
requirements:
|
|
126
|
-
- - "~>"
|
|
127
|
-
- !ruby/object:Gem::Version
|
|
128
|
-
version: '5.9'
|
|
129
|
-
- !ruby/object:Gem::Dependency
|
|
130
|
-
name: pry
|
|
131
|
-
requirement: !ruby/object:Gem::Requirement
|
|
132
|
-
requirements:
|
|
133
|
-
- - "~>"
|
|
134
|
-
- !ruby/object:Gem::Version
|
|
135
|
-
version: '0.10'
|
|
136
|
-
type: :development
|
|
137
|
-
prerelease: false
|
|
138
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
139
|
-
requirements:
|
|
140
|
-
- - "~>"
|
|
141
|
-
- !ruby/object:Gem::Version
|
|
142
|
-
version: '0.10'
|
|
143
|
-
- !ruby/object:Gem::Dependency
|
|
144
|
-
name: rake
|
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
|
146
|
-
requirements:
|
|
147
|
-
- - ">="
|
|
148
|
-
- !ruby/object:Gem::Version
|
|
149
|
-
version: '11.2'
|
|
150
|
-
- - "<"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '14'
|
|
153
|
-
type: :development
|
|
154
|
-
prerelease: false
|
|
155
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - ">="
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '11.2'
|
|
160
|
-
- - "<"
|
|
161
|
-
- !ruby/object:Gem::Version
|
|
162
|
-
version: '14'
|
|
163
|
-
- !ruby/object:Gem::Dependency
|
|
164
|
-
name: rubocop
|
|
165
|
-
requirement: !ruby/object:Gem::Requirement
|
|
166
|
-
requirements:
|
|
167
|
-
- - "~>"
|
|
168
|
-
- !ruby/object:Gem::Version
|
|
169
|
-
version: 1.28.1
|
|
170
|
-
type: :development
|
|
171
|
-
prerelease: false
|
|
172
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
173
|
-
requirements:
|
|
174
|
-
- - "~>"
|
|
175
|
-
- !ruby/object:Gem::Version
|
|
176
|
-
version: 1.28.1
|
|
177
83
|
description: Style checker/lint tool for markdown files
|
|
178
84
|
email:
|
|
179
85
|
- mark@mivok.net
|
|
@@ -213,14 +119,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
213
119
|
requirements:
|
|
214
120
|
- - ">="
|
|
215
121
|
- !ruby/object:Gem::Version
|
|
216
|
-
version: '2
|
|
122
|
+
version: '3.2'
|
|
217
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
124
|
requirements:
|
|
219
125
|
- - ">="
|
|
220
126
|
- !ruby/object:Gem::Version
|
|
221
127
|
version: '0'
|
|
222
128
|
requirements: []
|
|
223
|
-
rubygems_version: 3.
|
|
129
|
+
rubygems_version: 3.5.22
|
|
224
130
|
signing_key:
|
|
225
131
|
specification_version: 4
|
|
226
132
|
summary: Markdown lint tool
|