mdl 0.0.1
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 +7 -0
- data/.gitignore +13 -0
- data/.travis.yml +7 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +79 -0
- data/Rakefile +8 -0
- data/bin/mdl +10 -0
- data/docs/RULES.md +609 -0
- data/docs/creating_rules.md +83 -0
- data/docs/creating_styles.md +47 -0
- data/example/markdown_spec.md +897 -0
- data/lib/mdl.rb +72 -0
- data/lib/mdl/cli.rb +89 -0
- data/lib/mdl/config.rb +9 -0
- data/lib/mdl/doc.rb +252 -0
- data/lib/mdl/kramdown_parser.rb +29 -0
- data/lib/mdl/rules.rb +393 -0
- data/lib/mdl/ruleset.rb +47 -0
- data/lib/mdl/style.rb +50 -0
- data/lib/mdl/styles/all.rb +1 -0
- data/lib/mdl/styles/cirosantilli.rb +6 -0
- data/lib/mdl/styles/default.rb +1 -0
- data/lib/mdl/styles/relaxed.rb +6 -0
- data/lib/mdl/version.rb +3 -0
- data/mdl.gemspec +31 -0
- data/test/rule_tests/atx_closed_header_spacing.md +17 -0
- data/test/rule_tests/atx_header_spacing.md +5 -0
- data/test/rule_tests/blockquote_blank_lines.md +31 -0
- data/test/rule_tests/blockquote_spaces.md +21 -0
- data/test/rule_tests/bulleted_list_2_space_indent.md +6 -0
- data/test/rule_tests/bulleted_list_2_space_indent_style.rb +2 -0
- data/test/rule_tests/bulleted_list_4_space_indent.md +3 -0
- data/test/rule_tests/bulleted_list_not_at_beginning_of_line.md +14 -0
- data/test/rule_tests/code_block_dollar.md +22 -0
- data/test/rule_tests/consecutive_blank_lines.md +11 -0
- data/test/rule_tests/consistent_bullet_styles_asterisk.md +3 -0
- data/test/rule_tests/consistent_bullet_styles_dash.md +3 -0
- data/test/rule_tests/consistent_bullet_styles_plus.md +3 -0
- data/test/rule_tests/empty_doc.md +0 -0
- data/test/rule_tests/fenced_code_blocks.md +21 -0
- data/test/rule_tests/first_header_bad_atx.md +1 -0
- data/test/rule_tests/first_header_bad_setext.md +2 -0
- data/test/rule_tests/first_header_good_atx.md +1 -0
- data/test/rule_tests/first_header_good_setext.md +2 -0
- data/test/rule_tests/header_duplicate_content.md +11 -0
- data/test/rule_tests/header_multiple_toplevel.md +3 -0
- data/test/rule_tests/header_mutliple_h1_no_toplevel.md +5 -0
- data/test/rule_tests/header_trailing_punctuation.md +11 -0
- data/test/rule_tests/header_trailing_punctuation_customized.md +14 -0
- data/test/rule_tests/header_trailing_punctuation_customized_style.rb +2 -0
- data/test/rule_tests/headers_bad.md +7 -0
- data/test/rule_tests/headers_good.md +5 -0
- data/test/rule_tests/headers_surrounding_space_atx.md +9 -0
- data/test/rule_tests/headers_surrounding_space_setext.md +15 -0
- data/test/rule_tests/headers_with_spaces_at_the_beginning.md +9 -0
- data/test/rule_tests/inconsistent_bullet_indent_same_level.md +4 -0
- data/test/rule_tests/inconsistent_bullet_styles_asterisk.md +3 -0
- data/test/rule_tests/inconsistent_bullet_styles_dash.md +3 -0
- data/test/rule_tests/inconsistent_bullet_styles_plus.md +3 -0
- data/test/rule_tests/incorrect_bullet_style_asterisk.md +3 -0
- data/test/rule_tests/incorrect_bullet_style_asterisk_style.rb +2 -0
- data/test/rule_tests/incorrect_bullet_style_dash.md +3 -0
- data/test/rule_tests/incorrect_bullet_style_dash_style.rb +2 -0
- data/test/rule_tests/incorrect_bullet_style_plus.md +3 -0
- data/test/rule_tests/incorrect_bullet_style_plus_style.rb +2 -0
- data/test/rule_tests/incorrect_header_atx.md +6 -0
- data/test/rule_tests/incorrect_header_atx_closed.md +6 -0
- data/test/rule_tests/incorrect_header_atx_closed_style.rb +2 -0
- data/test/rule_tests/incorrect_header_atx_style.rb +2 -0
- data/test/rule_tests/incorrect_header_setext.md +6 -0
- data/test/rule_tests/incorrect_header_setext_style.rb +2 -0
- data/test/rule_tests/long_lines.md +3 -0
- data/test/rule_tests/long_lines_100.md +7 -0
- data/test/rule_tests/long_lines_100_style.rb +2 -0
- data/test/rule_tests/mixed_header_types_atx.md +6 -0
- data/test/rule_tests/mixed_header_types_atx_closed.md +6 -0
- data/test/rule_tests/mixed_header_types_setext.md +6 -0
- data/test/rule_tests/ordered_list_item_prefix.md +13 -0
- data/test/rule_tests/ordered_list_item_prefix_ordered.md +13 -0
- data/test/rule_tests/ordered_list_item_prefix_ordered_style.rb +2 -0
- data/test/rule_tests/reversed_link.md +7 -0
- data/test/rule_tests/spaces_after_list_marker.md +74 -0
- data/test/rule_tests/spaces_after_list_marker_style.rb +3 -0
- data/test/rule_tests/whitespace issues.md +3 -0
- data/test/setup_tests.rb +5 -0
- data/test/test_ruledocs.rb +45 -0
- data/test/test_rules.rb +56 -0
- data/tools/README.md +3 -0
- data/tools/test_location.rb +20 -0
- data/tools/view_markdown.rb +11 -0
- metadata +314 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
This is a very very very very very very very very long line over 80 chars but less than 100
|
2
|
+
|
3
|
+
This is a very very very very very very very very very very long line over 80 chars, and also over 100. {MD013}
|
4
|
+
|
5
|
+
This is a very very very very very very very very very long line that is exactly 100 characters long
|
6
|
+
|
7
|
+
This line however, while very long, doesn't have whitespace after the 100th columnwhichallowsforURLsandotherlongthings.
|
@@ -0,0 +1,74 @@
|
|
1
|
+
Normal list
|
2
|
+
|
3
|
+
* Foo
|
4
|
+
* Bar
|
5
|
+
* Baz
|
6
|
+
|
7
|
+
List with incorrect spacing
|
8
|
+
|
9
|
+
* Foo {MD030}
|
10
|
+
* Bar {MD030}
|
11
|
+
* Baz {MD030}
|
12
|
+
|
13
|
+
List with children:
|
14
|
+
|
15
|
+
* Foo {MD030}
|
16
|
+
* Bar {MD030}
|
17
|
+
* Baz
|
18
|
+
|
19
|
+
List with children and correct spacing:
|
20
|
+
|
21
|
+
* Foo
|
22
|
+
* Bar
|
23
|
+
* Baz (This sublist has no children)
|
24
|
+
|
25
|
+
List with Multiple paragraphs and correct spacing
|
26
|
+
|
27
|
+
* Foo
|
28
|
+
|
29
|
+
Here is the second paragraph
|
30
|
+
|
31
|
+
* All items in the list need the same indent
|
32
|
+
|
33
|
+
List with multiple paragraphs and incorrect spacing
|
34
|
+
|
35
|
+
* Foo {MD030}
|
36
|
+
|
37
|
+
Here is the second paragraph
|
38
|
+
|
39
|
+
* Bar {MD030}
|
40
|
+
|
41
|
+
List with code blocks:
|
42
|
+
|
43
|
+
* Foo
|
44
|
+
|
45
|
+
Here is some code
|
46
|
+
|
47
|
+
* Bar
|
48
|
+
|
49
|
+
Ordered lists:
|
50
|
+
|
51
|
+
1. Foo
|
52
|
+
1. Bar
|
53
|
+
1. Baz
|
54
|
+
|
55
|
+
And with incorrect spacing:
|
56
|
+
|
57
|
+
1. Foo {MD030}
|
58
|
+
1. Bar {MD030}
|
59
|
+
1. Baz {MD030}
|
60
|
+
|
61
|
+
Ordered lists with children:
|
62
|
+
|
63
|
+
1. Foo {MD030}
|
64
|
+
* Hi
|
65
|
+
1. Bar {MD030}
|
66
|
+
1. Baz {MD030}
|
67
|
+
|
68
|
+
Ordered lists with children (correct spacing), and with something other than
|
69
|
+
the first item determining that the entire list has children:
|
70
|
+
|
71
|
+
1. Foo
|
72
|
+
1. Bar
|
73
|
+
* Hi
|
74
|
+
1. Baz
|
data/test/setup_tests.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require_relative 'setup_tests'
|
2
|
+
|
3
|
+
# Ensures there is documentation for every rule, and that the
|
4
|
+
# descriptions/tags/etc in the rule match those in the documentation
|
5
|
+
class TestRuledocs < Minitest::Test
|
6
|
+
@@rules = MarkdownLint::RuleSet.load_default
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@ruledocs = load_ruledocs
|
10
|
+
end
|
11
|
+
|
12
|
+
def load_ruledocs
|
13
|
+
rules = Hash.new({}) # Default to {} if no docs for the rule
|
14
|
+
curr_rule = nil
|
15
|
+
rules_file = File.expand_path('../../docs/RULES.md', __FILE__)
|
16
|
+
File.read(rules_file).split("\n").each do |l|
|
17
|
+
if l.match(/^## (MD\d+) - (.*)$/)
|
18
|
+
rules[$1] = { :description => $2, :params => {} }
|
19
|
+
curr_rule = $1
|
20
|
+
elsif l.match(/^Tags: (.*)$/)
|
21
|
+
rules[curr_rule][:tags] = $1.split(',').map{|i| i.strip.to_sym}
|
22
|
+
elsif l.match(/^Parameters: (.*)$/)
|
23
|
+
rules[curr_rule][:params] = $1.split(',').map{|i| i.strip.to_sym}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
rules
|
27
|
+
end
|
28
|
+
|
29
|
+
@@rules.each do |id, r|
|
30
|
+
define_method("test_ruledoc_description_#{id}") do
|
31
|
+
assert_equal r.description, @ruledocs[id][:description]
|
32
|
+
end
|
33
|
+
define_method("test_ruledoc_tags_#{id}") do
|
34
|
+
assert_equal r.tags, @ruledocs[id][:tags]
|
35
|
+
end
|
36
|
+
define_method("test_ruledoc_params_#{id}") do
|
37
|
+
assert_equal r.params.keys.sort, (@ruledocs[id][:params] || []).sort
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_ruledoc_for_every_rule
|
42
|
+
# (and vice versa)
|
43
|
+
assert_equal @@rules.keys, @ruledocs.keys
|
44
|
+
end
|
45
|
+
end
|
data/test/test_rules.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require_relative 'setup_tests'
|
2
|
+
|
3
|
+
class TestRules < Minitest::Test
|
4
|
+
|
5
|
+
def get_expected_errors(lines)
|
6
|
+
# Looks for lines tagged with {MD123} to signify that a rule is expected to
|
7
|
+
# fire for this line. It also looks for lines tagged with {MD123:1} to
|
8
|
+
# signify that a rule is expected to fire on another line (the line number
|
9
|
+
# after the colon).
|
10
|
+
expected_errors = {}
|
11
|
+
re = /\{(MD\d+)(?::(\d+))?\}/
|
12
|
+
lines.each_with_index do |line, num|
|
13
|
+
m = re.match(line)
|
14
|
+
while m
|
15
|
+
expected_errors[m[1]] ||= []
|
16
|
+
if m[2]
|
17
|
+
expected_line = m[2].to_i
|
18
|
+
else
|
19
|
+
expected_line = num + 1 # 1 indexed lines
|
20
|
+
end
|
21
|
+
expected_errors[m[1]] << expected_line
|
22
|
+
m = re.match(line, m.end(0))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
expected_errors
|
26
|
+
end
|
27
|
+
|
28
|
+
def do_lint(filename)
|
29
|
+
# Check for a test_case_style.rb style file for individual tests
|
30
|
+
style_file = filename.sub(/.md$/, '_style.rb')
|
31
|
+
if ! File.exist?(style_file)
|
32
|
+
style_file = 'all'
|
33
|
+
end
|
34
|
+
|
35
|
+
rules = MarkdownLint::RuleSet.load_default
|
36
|
+
style = MarkdownLint::Style.load(style_file, rules)
|
37
|
+
rules.select! {|r| style.rules.include?(r)}
|
38
|
+
|
39
|
+
doc = MarkdownLint::Doc.new(File.read(filename))
|
40
|
+
expected_errors = get_expected_errors(doc.lines)
|
41
|
+
actual_errors = {}
|
42
|
+
rules.sort.each do |id, rule|
|
43
|
+
error_lines = rule.check.call(doc)
|
44
|
+
if error_lines and not error_lines.empty?
|
45
|
+
actual_errors[id] = error_lines
|
46
|
+
end
|
47
|
+
end
|
48
|
+
assert_equal expected_errors, actual_errors
|
49
|
+
end
|
50
|
+
|
51
|
+
Dir[File.expand_path("../rule_tests/*.md", __FILE__)].each do |filename|
|
52
|
+
define_method("test_#{File.basename(filename, '.md')}") do
|
53
|
+
do_lint(filename)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/tools/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Script for identifying when markdownlint is receiving an incorrect line
|
3
|
+
# number for an element. It checks all headers, then grabs the lines
|
4
|
+
# associated with the headers according to markdown and compares the content,
|
5
|
+
# printing out any that don't match.
|
6
|
+
require 'mdl/doc'
|
7
|
+
require 'pry'
|
8
|
+
|
9
|
+
text = File.read(ARGV[0])
|
10
|
+
unless ARGV[1].nil?
|
11
|
+
# If we provide a second argument, then start the document from line N of
|
12
|
+
# the original file.
|
13
|
+
text = text.split("\n")[ARGV[1].to_i - 1..-1].join("\n")
|
14
|
+
end
|
15
|
+
doc = MarkdownLint::Doc.new(text)
|
16
|
+
headers = doc.find_type(:header)
|
17
|
+
bad_headers = headers.select do |e|
|
18
|
+
doc.element_line(e).nil? || ! doc.element_line(e).include?(e[:raw_text])
|
19
|
+
end
|
20
|
+
pp bad_headers
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Quick script for viewing getting at kramdown's and markdownlint's view of a
|
3
|
+
# markdown file
|
4
|
+
require 'mdl/doc'
|
5
|
+
require 'pry'
|
6
|
+
|
7
|
+
|
8
|
+
doc = MarkdownLint::Doc.new_from_file(ARGV[0])
|
9
|
+
children = doc.parsed.root.children
|
10
|
+
|
11
|
+
binding.pry
|
metadata
ADDED
@@ -0,0 +1,314 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mdl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mark Harrison
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-09-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: kramdown
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.4'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.4.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.4'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.4.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: mixlib-config
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.1'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.1.0
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '2.1'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.1.0
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: mixlib-cli
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '1.5'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.5.0
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.5'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 1.5.0
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: bundler
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.5'
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '1.5'
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: rake
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '10.0'
|
94
|
+
type: :development
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '10.0'
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: minitest
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '5.0'
|
108
|
+
type: :development
|
109
|
+
prerelease: false
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - "~>"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '5.0'
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: pry
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0.10'
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0.10'
|
129
|
+
description: Style checker/lint tool for markdown files
|
130
|
+
email:
|
131
|
+
- mark@mivok.net
|
132
|
+
executables:
|
133
|
+
- mdl
|
134
|
+
extensions: []
|
135
|
+
extra_rdoc_files: []
|
136
|
+
files:
|
137
|
+
- ".gitignore"
|
138
|
+
- ".travis.yml"
|
139
|
+
- Gemfile
|
140
|
+
- LICENSE.txt
|
141
|
+
- README.md
|
142
|
+
- Rakefile
|
143
|
+
- bin/mdl
|
144
|
+
- docs/RULES.md
|
145
|
+
- docs/creating_rules.md
|
146
|
+
- docs/creating_styles.md
|
147
|
+
- example/markdown_spec.md
|
148
|
+
- lib/mdl.rb
|
149
|
+
- lib/mdl/cli.rb
|
150
|
+
- lib/mdl/config.rb
|
151
|
+
- lib/mdl/doc.rb
|
152
|
+
- lib/mdl/kramdown_parser.rb
|
153
|
+
- lib/mdl/rules.rb
|
154
|
+
- lib/mdl/ruleset.rb
|
155
|
+
- lib/mdl/style.rb
|
156
|
+
- lib/mdl/styles/all.rb
|
157
|
+
- lib/mdl/styles/cirosantilli.rb
|
158
|
+
- lib/mdl/styles/default.rb
|
159
|
+
- lib/mdl/styles/relaxed.rb
|
160
|
+
- lib/mdl/version.rb
|
161
|
+
- mdl.gemspec
|
162
|
+
- test/rule_tests/atx_closed_header_spacing.md
|
163
|
+
- test/rule_tests/atx_header_spacing.md
|
164
|
+
- test/rule_tests/blockquote_blank_lines.md
|
165
|
+
- test/rule_tests/blockquote_spaces.md
|
166
|
+
- test/rule_tests/bulleted_list_2_space_indent.md
|
167
|
+
- test/rule_tests/bulleted_list_2_space_indent_style.rb
|
168
|
+
- test/rule_tests/bulleted_list_4_space_indent.md
|
169
|
+
- test/rule_tests/bulleted_list_not_at_beginning_of_line.md
|
170
|
+
- test/rule_tests/code_block_dollar.md
|
171
|
+
- test/rule_tests/consecutive_blank_lines.md
|
172
|
+
- test/rule_tests/consistent_bullet_styles_asterisk.md
|
173
|
+
- test/rule_tests/consistent_bullet_styles_dash.md
|
174
|
+
- test/rule_tests/consistent_bullet_styles_plus.md
|
175
|
+
- test/rule_tests/empty_doc.md
|
176
|
+
- test/rule_tests/fenced_code_blocks.md
|
177
|
+
- test/rule_tests/first_header_bad_atx.md
|
178
|
+
- test/rule_tests/first_header_bad_setext.md
|
179
|
+
- test/rule_tests/first_header_good_atx.md
|
180
|
+
- test/rule_tests/first_header_good_setext.md
|
181
|
+
- test/rule_tests/header_duplicate_content.md
|
182
|
+
- test/rule_tests/header_multiple_toplevel.md
|
183
|
+
- test/rule_tests/header_mutliple_h1_no_toplevel.md
|
184
|
+
- test/rule_tests/header_trailing_punctuation.md
|
185
|
+
- test/rule_tests/header_trailing_punctuation_customized.md
|
186
|
+
- test/rule_tests/header_trailing_punctuation_customized_style.rb
|
187
|
+
- test/rule_tests/headers_bad.md
|
188
|
+
- test/rule_tests/headers_good.md
|
189
|
+
- test/rule_tests/headers_surrounding_space_atx.md
|
190
|
+
- test/rule_tests/headers_surrounding_space_setext.md
|
191
|
+
- test/rule_tests/headers_with_spaces_at_the_beginning.md
|
192
|
+
- test/rule_tests/inconsistent_bullet_indent_same_level.md
|
193
|
+
- test/rule_tests/inconsistent_bullet_styles_asterisk.md
|
194
|
+
- test/rule_tests/inconsistent_bullet_styles_dash.md
|
195
|
+
- test/rule_tests/inconsistent_bullet_styles_plus.md
|
196
|
+
- test/rule_tests/incorrect_bullet_style_asterisk.md
|
197
|
+
- test/rule_tests/incorrect_bullet_style_asterisk_style.rb
|
198
|
+
- test/rule_tests/incorrect_bullet_style_dash.md
|
199
|
+
- test/rule_tests/incorrect_bullet_style_dash_style.rb
|
200
|
+
- test/rule_tests/incorrect_bullet_style_plus.md
|
201
|
+
- test/rule_tests/incorrect_bullet_style_plus_style.rb
|
202
|
+
- test/rule_tests/incorrect_header_atx.md
|
203
|
+
- test/rule_tests/incorrect_header_atx_closed.md
|
204
|
+
- test/rule_tests/incorrect_header_atx_closed_style.rb
|
205
|
+
- test/rule_tests/incorrect_header_atx_style.rb
|
206
|
+
- test/rule_tests/incorrect_header_setext.md
|
207
|
+
- test/rule_tests/incorrect_header_setext_style.rb
|
208
|
+
- test/rule_tests/long_lines.md
|
209
|
+
- test/rule_tests/long_lines_100.md
|
210
|
+
- test/rule_tests/long_lines_100_style.rb
|
211
|
+
- test/rule_tests/mixed_header_types_atx.md
|
212
|
+
- test/rule_tests/mixed_header_types_atx_closed.md
|
213
|
+
- test/rule_tests/mixed_header_types_setext.md
|
214
|
+
- test/rule_tests/ordered_list_item_prefix.md
|
215
|
+
- test/rule_tests/ordered_list_item_prefix_ordered.md
|
216
|
+
- test/rule_tests/ordered_list_item_prefix_ordered_style.rb
|
217
|
+
- test/rule_tests/reversed_link.md
|
218
|
+
- test/rule_tests/spaces_after_list_marker.md
|
219
|
+
- test/rule_tests/spaces_after_list_marker_style.rb
|
220
|
+
- test/rule_tests/whitespace issues.md
|
221
|
+
- test/setup_tests.rb
|
222
|
+
- test/test_ruledocs.rb
|
223
|
+
- test/test_rules.rb
|
224
|
+
- tools/README.md
|
225
|
+
- tools/test_location.rb
|
226
|
+
- tools/view_markdown.rb
|
227
|
+
homepage: http://github.com/mivok/mdl
|
228
|
+
licenses:
|
229
|
+
- MIT
|
230
|
+
metadata: {}
|
231
|
+
post_install_message:
|
232
|
+
rdoc_options: []
|
233
|
+
require_paths:
|
234
|
+
- lib
|
235
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: 1.9.2
|
240
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - ">="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '0'
|
245
|
+
requirements: []
|
246
|
+
rubyforge_project:
|
247
|
+
rubygems_version: 2.2.1
|
248
|
+
signing_key:
|
249
|
+
specification_version: 4
|
250
|
+
summary: Markdown lint tool
|
251
|
+
test_files:
|
252
|
+
- test/rule_tests/atx_closed_header_spacing.md
|
253
|
+
- test/rule_tests/atx_header_spacing.md
|
254
|
+
- test/rule_tests/blockquote_blank_lines.md
|
255
|
+
- test/rule_tests/blockquote_spaces.md
|
256
|
+
- test/rule_tests/bulleted_list_2_space_indent.md
|
257
|
+
- test/rule_tests/bulleted_list_2_space_indent_style.rb
|
258
|
+
- test/rule_tests/bulleted_list_4_space_indent.md
|
259
|
+
- test/rule_tests/bulleted_list_not_at_beginning_of_line.md
|
260
|
+
- test/rule_tests/code_block_dollar.md
|
261
|
+
- test/rule_tests/consecutive_blank_lines.md
|
262
|
+
- test/rule_tests/consistent_bullet_styles_asterisk.md
|
263
|
+
- test/rule_tests/consistent_bullet_styles_dash.md
|
264
|
+
- test/rule_tests/consistent_bullet_styles_plus.md
|
265
|
+
- test/rule_tests/empty_doc.md
|
266
|
+
- test/rule_tests/fenced_code_blocks.md
|
267
|
+
- test/rule_tests/first_header_bad_atx.md
|
268
|
+
- test/rule_tests/first_header_bad_setext.md
|
269
|
+
- test/rule_tests/first_header_good_atx.md
|
270
|
+
- test/rule_tests/first_header_good_setext.md
|
271
|
+
- test/rule_tests/header_duplicate_content.md
|
272
|
+
- test/rule_tests/header_multiple_toplevel.md
|
273
|
+
- test/rule_tests/header_mutliple_h1_no_toplevel.md
|
274
|
+
- test/rule_tests/header_trailing_punctuation.md
|
275
|
+
- test/rule_tests/header_trailing_punctuation_customized.md
|
276
|
+
- test/rule_tests/header_trailing_punctuation_customized_style.rb
|
277
|
+
- test/rule_tests/headers_bad.md
|
278
|
+
- test/rule_tests/headers_good.md
|
279
|
+
- test/rule_tests/headers_surrounding_space_atx.md
|
280
|
+
- test/rule_tests/headers_surrounding_space_setext.md
|
281
|
+
- test/rule_tests/headers_with_spaces_at_the_beginning.md
|
282
|
+
- test/rule_tests/inconsistent_bullet_indent_same_level.md
|
283
|
+
- test/rule_tests/inconsistent_bullet_styles_asterisk.md
|
284
|
+
- test/rule_tests/inconsistent_bullet_styles_dash.md
|
285
|
+
- test/rule_tests/inconsistent_bullet_styles_plus.md
|
286
|
+
- test/rule_tests/incorrect_bullet_style_asterisk.md
|
287
|
+
- test/rule_tests/incorrect_bullet_style_asterisk_style.rb
|
288
|
+
- test/rule_tests/incorrect_bullet_style_dash.md
|
289
|
+
- test/rule_tests/incorrect_bullet_style_dash_style.rb
|
290
|
+
- test/rule_tests/incorrect_bullet_style_plus.md
|
291
|
+
- test/rule_tests/incorrect_bullet_style_plus_style.rb
|
292
|
+
- test/rule_tests/incorrect_header_atx.md
|
293
|
+
- test/rule_tests/incorrect_header_atx_closed.md
|
294
|
+
- test/rule_tests/incorrect_header_atx_closed_style.rb
|
295
|
+
- test/rule_tests/incorrect_header_atx_style.rb
|
296
|
+
- test/rule_tests/incorrect_header_setext.md
|
297
|
+
- test/rule_tests/incorrect_header_setext_style.rb
|
298
|
+
- test/rule_tests/long_lines.md
|
299
|
+
- test/rule_tests/long_lines_100.md
|
300
|
+
- test/rule_tests/long_lines_100_style.rb
|
301
|
+
- test/rule_tests/mixed_header_types_atx.md
|
302
|
+
- test/rule_tests/mixed_header_types_atx_closed.md
|
303
|
+
- test/rule_tests/mixed_header_types_setext.md
|
304
|
+
- test/rule_tests/ordered_list_item_prefix.md
|
305
|
+
- test/rule_tests/ordered_list_item_prefix_ordered.md
|
306
|
+
- test/rule_tests/ordered_list_item_prefix_ordered_style.rb
|
307
|
+
- test/rule_tests/reversed_link.md
|
308
|
+
- test/rule_tests/spaces_after_list_marker.md
|
309
|
+
- test/rule_tests/spaces_after_list_marker_style.rb
|
310
|
+
- test/rule_tests/whitespace issues.md
|
311
|
+
- test/setup_tests.rb
|
312
|
+
- test/test_ruledocs.rb
|
313
|
+
- test/test_rules.rb
|
314
|
+
has_rdoc:
|