mdl 0.9.0 → 0.10.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/bin/mdl +2 -2
- data/lib/mdl.rb +41 -32
- data/lib/mdl/cli.rb +92 -90
- data/lib/mdl/config.rb +2 -1
- data/lib/mdl/doc.rb +45 -54
- data/lib/mdl/kramdown_parser.rb +1 -1
- data/lib/mdl/rules.rb +206 -167
- data/lib/mdl/ruleset.rb +11 -10
- data/lib/mdl/style.rb +18 -16
- data/lib/mdl/styles/cirosantilli.rb +2 -2
- data/lib/mdl/styles/default.rb +1 -1
- data/lib/mdl/version.rb +1 -1
- data/mdl.gemspec +20 -18
- metadata +63 -35
data/lib/mdl/ruleset.rb
CHANGED
@@ -1,38 +1,39 @@
|
|
1
1
|
module MarkdownLint
|
2
|
+
# defines a single rule
|
2
3
|
class Rule
|
3
4
|
attr_accessor :id, :description
|
4
5
|
|
5
6
|
def initialize(id, description, block)
|
6
|
-
@id
|
7
|
+
@id = id
|
8
|
+
@description = description
|
7
9
|
@aliases = []
|
8
10
|
@tags = []
|
9
11
|
@params = {}
|
10
12
|
instance_eval(&block)
|
11
13
|
end
|
12
14
|
|
13
|
-
|
14
15
|
def check(&block)
|
15
16
|
@check = block unless block.nil?
|
16
17
|
@check
|
17
18
|
end
|
18
19
|
|
19
|
-
def tags(*
|
20
|
-
@tags =
|
20
|
+
def tags(*tags)
|
21
|
+
@tags = tags.flatten.map(&:to_sym) unless tags.empty?
|
21
22
|
@tags
|
22
23
|
end
|
23
24
|
|
24
|
-
def aliases(*
|
25
|
-
@aliases.concat(
|
25
|
+
def aliases(*aliases)
|
26
|
+
@aliases.concat(aliases)
|
26
27
|
@aliases
|
27
28
|
end
|
28
29
|
|
29
|
-
def params(
|
30
|
-
@params.update(
|
30
|
+
def params(params = nil)
|
31
|
+
@params.update(params) unless params.nil?
|
31
32
|
@params
|
32
33
|
end
|
33
|
-
|
34
34
|
end
|
35
35
|
|
36
|
+
# defines a ruleset
|
36
37
|
class RuleSet
|
37
38
|
attr_reader :rules
|
38
39
|
|
@@ -50,7 +51,7 @@ module MarkdownLint
|
|
50
51
|
end
|
51
52
|
|
52
53
|
def load_default
|
53
|
-
load(File.expand_path(
|
54
|
+
load(File.expand_path('rules.rb', __dir__))
|
54
55
|
end
|
55
56
|
end
|
56
57
|
end
|
data/lib/mdl/style.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'set'
|
2
2
|
|
3
3
|
module MarkdownLint
|
4
|
+
# defines a style
|
4
5
|
class Style
|
5
6
|
attr_reader :rules
|
6
7
|
|
@@ -24,14 +25,15 @@ module MarkdownLint
|
|
24
25
|
@rules.merge(@all_rules.keys)
|
25
26
|
end
|
26
27
|
|
27
|
-
def rule(id, params={})
|
28
|
+
def rule(id, params = {})
|
28
29
|
if block_given?
|
29
|
-
raise "
|
30
|
+
raise '"rule" does not take a block. Should this definition go in a ' +
|
31
|
+
'ruleset instead?'
|
30
32
|
end
|
33
|
+
|
31
34
|
id = @aliases[id] if @aliases[id]
|
32
|
-
unless @all_rules[id]
|
33
|
-
|
34
|
-
end
|
35
|
+
raise "No such rule: #{id}" unless @all_rules[id]
|
36
|
+
|
35
37
|
@rules << id
|
36
38
|
@all_rules[id].params(params)
|
37
39
|
end
|
@@ -41,35 +43,35 @@ module MarkdownLint
|
|
41
43
|
@rules.delete(id)
|
42
44
|
end
|
43
45
|
|
44
|
-
def tag(
|
45
|
-
@rules.merge(@tagged_rules[
|
46
|
+
def tag(tag)
|
47
|
+
@rules.merge(@tagged_rules[tag])
|
46
48
|
end
|
47
49
|
|
48
|
-
def exclude_tag(
|
49
|
-
@rules.subtract(@tagged_rules[
|
50
|
+
def exclude_tag(tag)
|
51
|
+
@rules.subtract(@tagged_rules[tag])
|
50
52
|
end
|
51
53
|
|
52
54
|
def self.load(style_file, rules)
|
53
|
-
unless style_file.include?(
|
55
|
+
unless style_file.include?('/') || style_file.end_with?('.rb')
|
54
56
|
tmp = File.expand_path("../styles/#{style_file}.rb", __FILE__)
|
55
57
|
unless File.exist?(tmp)
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
58
|
+
warn "#{style_file} does not appear to be a built-in style." +
|
59
|
+
' If you meant to pass in your own style file, it must contain' +
|
60
|
+
" a '/' or end in '.rb'. See https://github.com/markdownlint/" +
|
61
|
+
'markdownlint/blob/master/docs/configuration.md'
|
60
62
|
exit(1)
|
61
63
|
end
|
62
64
|
style_file = tmp
|
63
65
|
end
|
64
66
|
|
65
67
|
unless File.exist?(style_file)
|
66
|
-
|
68
|
+
warn "Style '#{style_file}' does not exist."
|
67
69
|
exit(1)
|
68
70
|
end
|
69
71
|
|
70
72
|
style = new(rules)
|
71
73
|
style.instance_eval(File.read(style_file), style_file)
|
72
|
-
rules.select! {|r| style.rules.include?(r)}
|
74
|
+
rules.select! { |r| style.rules.include?(r) }
|
73
75
|
style
|
74
76
|
end
|
75
77
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Enforce the style guide at
|
1
|
+
# Enforce the style guide at https://cirosantilli.com/markdown-style-guide
|
2
2
|
all
|
3
3
|
rule 'MD003', :style => :atx
|
4
4
|
rule 'MD004', :style => :dash
|
5
5
|
rule 'MD007', :indent => 4
|
6
6
|
rule 'MD030', :ul_multi => 3, :ol_multi => 2
|
7
|
-
rule 'MD035', :style =>
|
7
|
+
rule 'MD035', :style => '---'
|
8
8
|
|
9
9
|
# Inline HTML - this isn't forbidden by the style guide, and raw HTML use is
|
10
10
|
# explicitly mentioned in the 'email automatic links' section.
|
data/lib/mdl/styles/default.rb
CHANGED
data/lib/mdl/version.rb
CHANGED
data/mdl.gemspec
CHANGED
@@ -1,32 +1,34 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'mdl/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.authors
|
10
|
-
spec.email
|
11
|
-
spec.summary
|
12
|
-
spec.description
|
13
|
-
spec.homepage
|
14
|
-
spec.license
|
6
|
+
spec.name = 'mdl'
|
7
|
+
spec.version = MarkdownLint::VERSION
|
8
|
+
spec.authors = ['Mark Harrison']
|
9
|
+
spec.email = ['mark@mivok.net']
|
10
|
+
spec.summary = 'Markdown lint tool'
|
11
|
+
spec.description = 'Style checker/lint tool for markdown files'
|
12
|
+
spec.homepage = 'http://github.com/markdownlint/markdownlint'
|
13
|
+
spec.license = 'MIT'
|
15
14
|
|
16
|
-
spec.files
|
17
|
-
|
18
|
-
spec.
|
19
|
-
spec.
|
15
|
+
spec.files = %w{LICENSE.txt Gemfile} + Dir.glob('*.gemspec') +
|
16
|
+
Dir.glob('lib/**/*')
|
17
|
+
spec.bindir = 'bin'
|
18
|
+
spec.executables = %w{mdl}
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.required_ruby_version = '>= 2.4'
|
22
22
|
|
23
|
-
spec.add_dependency 'kramdown', '~> 2.
|
24
|
-
spec.add_dependency 'kramdown-parser-gfm', '~> 1.
|
25
|
-
spec.add_dependency 'mixlib-config', '>= 2.2.1', '< 4'
|
23
|
+
spec.add_dependency 'kramdown', '~> 2.3'
|
24
|
+
spec.add_dependency 'kramdown-parser-gfm', '~> 1.1'
|
26
25
|
spec.add_dependency 'mixlib-cli', '~> 2.1', '>= 2.1.1'
|
26
|
+
spec.add_dependency 'mixlib-config', '>= 2.2.1', '< 4'
|
27
|
+
spec.add_dependency 'mixlib-shellout'
|
27
28
|
|
28
29
|
spec.add_development_dependency 'bundler', '>= 1.12', '< 3'
|
29
|
-
spec.add_development_dependency 'rake', '>= 11.2', '< 14'
|
30
30
|
spec.add_development_dependency 'minitest', '~> 5.9'
|
31
31
|
spec.add_development_dependency 'pry', '~> 0.10'
|
32
|
+
spec.add_development_dependency 'rake', '>= 11.2', '< 14'
|
33
|
+
spec.add_development_dependency 'rubocop', '>= 0.49.0'
|
32
34
|
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.10.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: 2020-
|
11
|
+
date: 2020-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -16,28 +16,48 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '2.
|
26
|
+
version: '2.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: kramdown-parser-gfm
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mixlib-cli
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.1'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 2.1.1
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '2.1'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.1.1
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
62
|
name: mixlib-config
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,25 +79,19 @@ dependencies:
|
|
59
79
|
- !ruby/object:Gem::Version
|
60
80
|
version: '4'
|
61
81
|
- !ruby/object:Gem::Dependency
|
62
|
-
name: mixlib-
|
82
|
+
name: mixlib-shellout
|
63
83
|
requirement: !ruby/object:Gem::Requirement
|
64
84
|
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '2.1'
|
68
85
|
- - ">="
|
69
86
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
87
|
+
version: '0'
|
71
88
|
type: :runtime
|
72
89
|
prerelease: false
|
73
90
|
version_requirements: !ruby/object:Gem::Requirement
|
74
91
|
requirements:
|
75
|
-
- - "~>"
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '2.1'
|
78
92
|
- - ">="
|
79
93
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
94
|
+
version: '0'
|
81
95
|
- !ruby/object:Gem::Dependency
|
82
96
|
name: bundler
|
83
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,53 +113,67 @@ dependencies:
|
|
99
113
|
- !ruby/object:Gem::Version
|
100
114
|
version: '3'
|
101
115
|
- !ruby/object:Gem::Dependency
|
102
|
-
name:
|
116
|
+
name: minitest
|
103
117
|
requirement: !ruby/object:Gem::Requirement
|
104
118
|
requirements:
|
105
|
-
- - "
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: '11.2'
|
108
|
-
- - "<"
|
119
|
+
- - "~>"
|
109
120
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
121
|
+
version: '5.9'
|
111
122
|
type: :development
|
112
123
|
prerelease: false
|
113
124
|
version_requirements: !ruby/object:Gem::Requirement
|
114
125
|
requirements:
|
115
|
-
- - "
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '11.2'
|
118
|
-
- - "<"
|
126
|
+
- - "~>"
|
119
127
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
128
|
+
version: '5.9'
|
121
129
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
130
|
+
name: pry
|
123
131
|
requirement: !ruby/object:Gem::Requirement
|
124
132
|
requirements:
|
125
133
|
- - "~>"
|
126
134
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
135
|
+
version: '0.10'
|
128
136
|
type: :development
|
129
137
|
prerelease: false
|
130
138
|
version_requirements: !ruby/object:Gem::Requirement
|
131
139
|
requirements:
|
132
140
|
- - "~>"
|
133
141
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
142
|
+
version: '0.10'
|
135
143
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
144
|
+
name: rake
|
137
145
|
requirement: !ruby/object:Gem::Requirement
|
138
146
|
requirements:
|
139
|
-
- - "
|
147
|
+
- - ">="
|
140
148
|
- !ruby/object:Gem::Version
|
141
|
-
version: '
|
149
|
+
version: '11.2'
|
150
|
+
- - "<"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '14'
|
142
153
|
type: :development
|
143
154
|
prerelease: false
|
144
155
|
version_requirements: !ruby/object:Gem::Requirement
|
145
156
|
requirements:
|
146
|
-
- - "
|
157
|
+
- - ">="
|
147
158
|
- !ruby/object:Gem::Version
|
148
|
-
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: 0.49.0
|
170
|
+
type: :development
|
171
|
+
prerelease: false
|
172
|
+
version_requirements: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 0.49.0
|
149
177
|
description: Style checker/lint tool for markdown files
|
150
178
|
email:
|
151
179
|
- mark@mivok.net
|
@@ -191,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
219
|
version: '0'
|
192
220
|
requirements: []
|
193
221
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.7.
|
222
|
+
rubygems_version: 2.7.8
|
195
223
|
signing_key:
|
196
224
|
specification_version: 4
|
197
225
|
summary: Markdown lint tool
|