mdl 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.pre-commit-hooks.yaml +6 -0
- data/.travis.yml +5 -16
- data/CHANGELOG.md +23 -2
- data/CONTRIBUTING.md +7 -0
- data/MAINTAINERS.md +21 -0
- data/README.md +7 -6
- data/docs/RULES.md +45 -3
- data/docs/configuration.md +1 -1
- data/docs/creating_rules.md +1 -1
- data/lib/mdl.rb +1 -1
- data/lib/mdl/doc.rb +1 -1
- data/lib/mdl/rules.rb +5 -4
- data/lib/mdl/style.rb +6 -0
- data/lib/mdl/version.rb +1 -1
- data/mdl.gemspec +2 -2
- data/test/rule_tests/emphasis_instead_of_headers.md +2 -0
- data/test/rule_tests/spaces_inside_link_text.md +18 -0
- metadata +18 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ccf964a726aadad1ea7bdc7e589852b27172ebe7dc0931915edde1cfe55376c
|
4
|
+
data.tar.gz: 246846b368b1be17d82de807042ac754b6cca2bc9420a97bf9dbcf2115d44384
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15e0c6a011500d284f0418090c3a2c57f53f2d0a5d281dadc87b86ee345d90ac9686513ef2a58aa5f21a47b2e710474a18404216a6658ce7f4f0a76fe4dd6f8e
|
7
|
+
data.tar.gz: a67b0882f1f05600a21466d4f8a11dda875cf46e045f7e6e663a7d2834f44c7ab101ac4328017da85c74f370b914bd9f49ce65183a3174fcece1d2335f886aec
|
data/.travis.yml
CHANGED
@@ -1,23 +1,12 @@
|
|
1
|
-
|
2
|
-
dist: trusty
|
1
|
+
dist: bionic
|
3
2
|
language: ruby
|
4
3
|
|
5
4
|
notifications:
|
6
5
|
email: false
|
7
6
|
|
8
|
-
# Temporary disable of jruby testing. There are problems on travis-ci
|
9
|
-
# currently with this. See:
|
10
|
-
#
|
11
|
-
# https://github.com/travis-ci/travis-ci/issues/9826
|
12
|
-
#
|
13
|
-
# before_install:
|
14
|
-
# - unset _JAVA_OPTIONS
|
15
|
-
|
16
7
|
matrix:
|
17
8
|
include:
|
18
|
-
- rvm: 2.
|
19
|
-
- rvm: 2.
|
20
|
-
- rvm: 2.
|
21
|
-
|
22
|
-
# env: JRUBY_OPTS="--dev"
|
23
|
-
# - rvm: jruby-9.2.0.0
|
9
|
+
- rvm: 2.4.6
|
10
|
+
- rvm: 2.5.5
|
11
|
+
- rvm: 2.6.2
|
12
|
+
- rvm: jruby-9.2.8.0
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,29 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [v0.6.0] (2019-10-19)
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
* There are now CONTRIBUTING.md and MAINTAINERS.md docs
|
8
|
+
* There is now a `.pre-commit-hooks.yaml` for those who want to use pre-commit.com
|
4
9
|
|
5
10
|
### Changed
|
6
11
|
|
7
|
-
|
12
|
+
* PR #248: Ignore blank line after front matter
|
13
|
+
* PR #231: Only import JSON when necessary (#223)
|
14
|
+
* PR #265: Use newere mixlib-cli
|
15
|
+
* PR #246: Nicer error message when activating nonexistent rule
|
16
|
+
* PR #241: Fix documentation on `ignore_front_matter`
|
17
|
+
* PR #245: Update docs to use "MY" prefix for custom rule example
|
18
|
+
* PR #256: Fix crash in MD039 when the link text is empty
|
19
|
+
* PR #229: Reference Node.js markdownlint
|
20
|
+
* PR #232: Added table of contents to RULES.md for easier navigation
|
21
|
+
* PR #219: Fix typos in MD046 docs
|
22
|
+
* PR #222: Fixed MD036 crash
|
23
|
+
|
24
|
+
### Removed
|
25
|
+
|
26
|
+
## [v0.5.0] (2018-07-01)
|
8
27
|
|
9
28
|
### Added
|
10
29
|
|
@@ -178,6 +197,8 @@
|
|
178
197
|
* MD030 - Spaces after list markers
|
179
198
|
|
180
199
|
[Unreleased]: https://github.com/markdownlint/markdownlint/tree/master
|
200
|
+
[v0.6.0]: https://github.com/markdownlint/markdownlint/tree/v0.6.0
|
201
|
+
[v0.5.0]: https://github.com/markdownlint/markdownlint/tree/v0.5.0
|
181
202
|
[v0.4.0]: https://github.com/markdownlint/markdownlint/tree/v0.4.0
|
182
203
|
[v0.3.1]: https://github.com/markdownlint/markdownlint/tree/v0.3.1
|
183
204
|
[v0.3.0]: https://github.com/markdownlint/markdownlint/tree/v0.3.0
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
1. Fork it ( <http://github.com/markdownlint/markdownlint/fork> )
|
4
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
5
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
6
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
7
|
+
1. Create new Pull Request
|
data/MAINTAINERS.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Markdownlint
|
2
|
+
|
3
|
+
We aim to make sure this project has longevity, and to that end we want to make
|
4
|
+
adding new maintainers a simple process.
|
5
|
+
|
6
|
+
If you would like to be a maintainer, you need to demonstrate some ongoing
|
7
|
+
contributions - either reviews of PRs or PR contributions. They need not be large.
|
8
|
+
Then send a PR to add yourself to this list. The existing maintainers will
|
9
|
+
have a discussion, and assuming there are no objections, you'll be added.
|
10
|
+
|
11
|
+
## Current Maintainers
|
12
|
+
|
13
|
+
* [Phil Dibowitz](https://github.com/jaymzh)
|
14
|
+
* [Naomi Reeves](https://github.com/NaomiReeves)
|
15
|
+
* [Bryan Wann](https://github.com/bwann)
|
16
|
+
* [David Anson](https://github.com/DavidAnson)
|
17
|
+
|
18
|
+
## Past Maintainers
|
19
|
+
|
20
|
+
* [psyomn](https://github.com/psyomn)
|
21
|
+
* [Mark Harrison](https://github.com/mivok)
|
data/README.md
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
[![Issues on deck](https://badge.waffle.io/mivok/markdownlint.png?label=on%20deck&title=On%20Deck)](https://waffle.io/mivok/markdownlint)
|
2
1
|
[![Travis build status](http://api.travis-ci.org/markdownlint/markdownlint.svg)](https://travis-ci.org/markdownlint/markdownlint)
|
3
2
|
[![Gem Version](https://badge.fury.io/rb/mdl.svg)](http://badge.fury.io/rb/mdl)
|
4
3
|
|
@@ -77,10 +76,12 @@ configured in a style file.
|
|
77
76
|
For more information on creating style files, see the
|
78
77
|
[creating styles](docs/creating_styles.md) document.
|
79
78
|
|
79
|
+
## Related projects
|
80
|
+
|
81
|
+
- [markdownlint](https://github.com/DavidAnson/markdownlint) and
|
82
|
+
[markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) for
|
83
|
+
Node.js
|
84
|
+
|
80
85
|
## Contributing
|
81
86
|
|
82
|
-
|
83
|
-
1. Create your feature branch (`git checkout -b my-new-feature`)
|
84
|
-
1. Commit your changes (`git commit -am 'Add some feature'`)
|
85
|
-
1. Push to the branch (`git push origin my-new-feature`)
|
86
|
-
1. Create new Pull Request
|
87
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
data/docs/RULES.md
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
|
2
|
+
* [Rules](#rules)
|
3
|
+
* [MD001 - Header levels should only increment by one level at a time](#md001---header-levels-should-only-increment-by-one-level-at-a-time)
|
4
|
+
* [MD002 - First header should be a top level header](#md002---first-header-should-be-a-top-level-header)
|
5
|
+
* [MD003 - Header style](#md003---header-style)
|
6
|
+
* [MD004 - Unordered list style](#md004---unordered-list-style)
|
7
|
+
* [MD005 - Inconsistent indentation for list items at the same level](#md005---inconsistent-indentation-for-list-items-at-the-same-level)
|
8
|
+
* [MD006 - Consider starting bulleted lists at the beginning of the line](#md006---consider-starting-bulleted-lists-at-the-beginning-of-the-line)
|
9
|
+
* [MD007 - Unordered list indentation](#md007---unordered-list-indentation)
|
10
|
+
* [MD009 - Trailing spaces](#md009---trailing-spaces)
|
11
|
+
* [MD010 - Hard tabs](#md010---hard-tabs)
|
12
|
+
* [MD011 - Reversed link syntax](#md011---reversed-link-syntax)
|
13
|
+
* [MD012 - Multiple consecutive blank lines](#md012---multiple-consecutive-blank-lines)
|
14
|
+
* [MD013 - Line length](#md013---line-length)
|
15
|
+
* [MD014 - Dollar signs used before commands without showing output](#md014---dollar-signs-used-before-commands-without-showing-output)
|
16
|
+
* [MD018 - No space after hash on atx style header](#md018---no-space-after-hash-on-atx-style-header)
|
17
|
+
* [MD019 - Multiple spaces after hash on atx style header](#md019---multiple-spaces-after-hash-on-atx-style-header)
|
18
|
+
* [MD020 - No space inside hashes on closed atx style header](#md020---no-space-inside-hashes-on-closed-atx-style-header)
|
19
|
+
* [MD021 - Multiple spaces inside hashes on closed atx style header](#md021---multiple-spaces-inside-hashes-on-closed-atx-style-header)
|
20
|
+
* [MD022 - Headers should be surrounded by blank lines](#md022---headers-should-be-surrounded-by-blank-lines)
|
21
|
+
* [MD023 - Headers must start at the beginning of the line](#md023---headers-must-start-at-the-beginning-of-the-line)
|
22
|
+
* [MD024 - Multiple headers with the same content](#md024---multiple-headers-with-the-same-content)
|
23
|
+
* [MD025 - Multiple top level headers in the same document](#md025---multiple-top-level-headers-in-the-same-document)
|
24
|
+
* [MD026 - Trailing punctuation in header](#md026---trailing-punctuation-in-header)
|
25
|
+
* [MD027 - Multiple spaces after blockquote symbol](#md027---multiple-spaces-after-blockquote-symbol)
|
26
|
+
* [MD028 - Blank line inside blockquote](#md028---blank-line-inside-blockquote)
|
27
|
+
* [MD029 - Ordered list item prefix](#md029---ordered-list-item-prefix)
|
28
|
+
* [MD030 - Spaces after list markers](#md030---spaces-after-list-markers)
|
29
|
+
* [MD031 - Fenced code blocks should be surrounded by blank lines](#md031---fenced-code-blocks-should-be-surrounded-by-blank-lines)
|
30
|
+
* [MD032 - Lists should be surrounded by blank lines](#md032---lists-should-be-surrounded-by-blank-lines)
|
31
|
+
* [MD033 - Inline HTML](#md033---inline-html)
|
32
|
+
* [MD034 - Bare URL used](#md034---bare-url-used)
|
33
|
+
* [MD035 - Horizontal rule style](#md035---horizontal-rule-style)
|
34
|
+
* [MD036 - Emphasis used instead of a header](#md036---emphasis-used-instead-of-a-header)
|
35
|
+
* [MD037 - Spaces inside emphasis markers](#md037---spaces-inside-emphasis-markers)
|
36
|
+
* [MD038 - Spaces inside code span elements](#md038---spaces-inside-code-span-elements)
|
37
|
+
* [MD039 - Spaces inside link text](#md039---spaces-inside-link-text)
|
38
|
+
* [MD040 - Fenced code blocks should have a language specified](#md040---fenced-code-blocks-should-have-a-language-specified)
|
39
|
+
* [MD041 - First line in file should be a top level header](#md041---first-line-in-file-should-be-a-top-level-header)
|
40
|
+
* [MD046 - Code block style](#md046---code-block-style)
|
41
|
+
|
1
42
|
# Rules
|
2
43
|
|
3
44
|
This document contains a description of all rules, what they are checking for,
|
@@ -1025,8 +1066,9 @@ Aliases: code-block-style
|
|
1025
1066
|
|
1026
1067
|
Parameters: style ("fenced", "indented", "consistent", default "fenced")
|
1027
1068
|
|
1028
|
-
This rule is
|
1029
|
-
configured one. For example, in the default configuration this
|
1069
|
+
This rule is triggered when a different code block style is used than the
|
1070
|
+
configured one. For example, in the default configuration this rule is triggered
|
1071
|
+
for the following document:
|
1030
1072
|
|
1031
1073
|
Some text.
|
1032
1074
|
|
@@ -1044,4 +1086,4 @@ To fix this, used fenced code blocks:
|
|
1044
1086
|
|
1045
1087
|
Some more text.
|
1046
1088
|
|
1047
|
-
|
1089
|
+
The reverse is true if the rule is configured to use the `indented` style.
|
data/docs/configuration.md
CHANGED
@@ -46,7 +46,7 @@ numbers will still match the file contents but markdownlint will consider the
|
|
46
46
|
line following front matter to be the first line.
|
47
47
|
|
48
48
|
* Command line: `-i`, `--ignore-front-matter`
|
49
|
-
* Config file: `
|
49
|
+
* Config file: `ignore_front_matter true`
|
50
50
|
* Default: false
|
51
51
|
|
52
52
|
### Specifying which rules mdl processes
|
data/docs/creating_rules.md
CHANGED
data/lib/mdl.rb
CHANGED
@@ -6,7 +6,6 @@ require 'mdl/ruleset'
|
|
6
6
|
require 'mdl/style'
|
7
7
|
require 'mdl/version'
|
8
8
|
|
9
|
-
require 'json'
|
10
9
|
require 'kramdown'
|
11
10
|
|
12
11
|
module MarkdownLint
|
@@ -89,6 +88,7 @@ module MarkdownLint
|
|
89
88
|
error_lines.each do |line|
|
90
89
|
line += doc.offset # Correct line numbers for any yaml front matter
|
91
90
|
if Config[:json]
|
91
|
+
require 'json'
|
92
92
|
results << {
|
93
93
|
'filename' => filename,
|
94
94
|
'line' => line,
|
data/lib/mdl/doc.rb
CHANGED
@@ -34,7 +34,7 @@ module MarkdownLint
|
|
34
34
|
# Create a new document given a string containing the markdown source
|
35
35
|
|
36
36
|
def initialize(text, ignore_front_matter = false)
|
37
|
-
regex = /^---\n(.*?)---\n
|
37
|
+
regex = /^---\n(.*?)---\n\n?/m
|
38
38
|
if ignore_front_matter and regex.match(text)
|
39
39
|
@offset = regex.match(text).to_s.split("\n").length
|
40
40
|
text.sub!(regex,'')
|
data/lib/mdl/rules.rb
CHANGED
@@ -585,6 +585,7 @@ rule "MD036", "Emphasis used instead of a header" do
|
|
585
585
|
next unless [:em, :strong].include?(p.children[0].type)
|
586
586
|
lines = doc.extract_text(p.children[0], "", false)
|
587
587
|
next if lines.length > 1
|
588
|
+
next if lines.empty?
|
588
589
|
next if lines[0].match(/[#{params[:punctuation]}]$/)
|
589
590
|
errors << doc.element_linenumber(p)
|
590
591
|
end
|
@@ -620,10 +621,10 @@ rule "MD039", "Spaces inside link text" do
|
|
620
621
|
aliases 'no-space-in-links'
|
621
622
|
check do |doc|
|
622
623
|
doc.element_linenumbers(
|
623
|
-
doc.find_type_elements(:a).select{|e|
|
624
|
-
|
625
|
-
|
626
|
-
|
624
|
+
doc.find_type_elements(:a).reject{|e|e.children.empty?}.select{|e|
|
625
|
+
e.children.first.type == :text && e.children.last.type == :text and (
|
626
|
+
e.children.first.value.start_with?(" ") or
|
627
|
+
e.children.last.value.end_with?(" "))}
|
627
628
|
)
|
628
629
|
end
|
629
630
|
end
|
data/lib/mdl/style.rb
CHANGED
@@ -25,7 +25,13 @@ module MarkdownLint
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def rule(id, params={})
|
28
|
+
if block_given?
|
29
|
+
raise "'rule' does not take a block. Should this definition go in a ruleset instead?"
|
30
|
+
end
|
28
31
|
id = @aliases[id] if @aliases[id]
|
32
|
+
unless @all_rules[id]
|
33
|
+
raise "No such rule: #{id}"
|
34
|
+
end
|
29
35
|
@rules << id
|
30
36
|
@all_rules[id].params(params)
|
31
37
|
end
|
data/lib/mdl/version.rb
CHANGED
data/mdl.gemspec
CHANGED
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency 'kramdown', '~> 1.12', '>= 1.12.0'
|
24
24
|
spec.add_dependency 'mixlib-config', '~> 2.2', '>= 2.2.1'
|
25
|
-
spec.add_dependency 'mixlib-cli', '~> 1
|
25
|
+
spec.add_dependency 'mixlib-cli', '~> 2.1', '>= 2.1.1'
|
26
26
|
|
27
|
-
spec.add_development_dependency 'bundler', '
|
27
|
+
spec.add_development_dependency 'bundler', '>= 1.12', '< 3'
|
28
28
|
spec.add_development_dependency 'rake', '~> 11.2'
|
29
29
|
spec.add_development_dependency 'minitest', '~> 5.9'
|
30
30
|
spec.add_development_dependency 'pry', '~> 0.10'
|
@@ -1,10 +1,28 @@
|
|
1
|
+
[](http://bar/)
|
2
|
+
|
1
3
|
[foo](http://bar/)
|
2
4
|
|
5
|
+
["foo"](http:/bar/)
|
6
|
+
|
7
|
+
[`foo`](http://bar/)
|
8
|
+
|
9
|
+
[*foo*](http://bar/)
|
10
|
+
|
11
|
+
[**foo**](http://bar/)
|
12
|
+
|
13
|
+
[foo "bar"](http:/baz/)
|
14
|
+
|
3
15
|
[foo ](http://bar/) {MD039}
|
4
16
|
|
5
17
|
[ foo](http://bar/) {MD039}
|
6
18
|
|
7
19
|
[ foo ](http://bar/) {MD039}
|
8
20
|
|
21
|
+
[ "foo" ](http://bar/) {MD039}
|
22
|
+
|
23
|
+
[ `foo` ](http://bar/) {MD039}
|
24
|
+
|
25
|
+
[ *foo* ](http://bar/) {MD039}
|
26
|
+
|
9
27
|
The following shouldn't break anything:
|
10
28
|
[![Screenshot.png](/images/Screenshot.png)](/images/Screenshot.png)
|
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.6.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: 2019-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -56,34 +56,40 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '1
|
59
|
+
version: '2.1'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
62
|
+
version: 2.1.1
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '1
|
69
|
+
version: '2.1'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
72
|
+
version: 2.1.1
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: bundler
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- - "
|
77
|
+
- - ">="
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '1.12'
|
80
|
+
- - "<"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3'
|
80
83
|
type: :development
|
81
84
|
prerelease: false
|
82
85
|
version_requirements: !ruby/object:Gem::Requirement
|
83
86
|
requirements:
|
84
|
-
- - "
|
87
|
+
- - ">="
|
85
88
|
- !ruby/object:Gem::Version
|
86
89
|
version: '1.12'
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '3'
|
87
93
|
- !ruby/object:Gem::Dependency
|
88
94
|
name: rake
|
89
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,10 +141,13 @@ extensions: []
|
|
135
141
|
extra_rdoc_files: []
|
136
142
|
files:
|
137
143
|
- ".gitignore"
|
144
|
+
- ".pre-commit-hooks.yaml"
|
138
145
|
- ".travis.yml"
|
139
146
|
- CHANGELOG.md
|
147
|
+
- CONTRIBUTING.md
|
140
148
|
- Gemfile
|
141
149
|
- LICENSE.txt
|
150
|
+
- MAINTAINERS.md
|
142
151
|
- README.md
|
143
152
|
- Rakefile
|
144
153
|
- bin/mdl
|
@@ -305,7 +314,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
305
314
|
version: '0'
|
306
315
|
requirements: []
|
307
316
|
rubyforge_project:
|
308
|
-
rubygems_version: 2.7.
|
317
|
+
rubygems_version: 2.7.7
|
309
318
|
signing_key:
|
310
319
|
specification_version: 4
|
311
320
|
summary: Markdown lint tool
|