jekyll-pre-commit 0.1.0 → 0.2.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/.rubocop.yml +6 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/README.md +8 -1
- data/Rakefile +5 -0
- data/jekyll-pre-commit.gemspec +3 -1
- data/lib/jekyll-pre-commit/checks/check.rb +3 -1
- data/lib/jekyll-pre-commit/checks/no_duplicate_tags.rb +41 -0
- data/lib/jekyll-pre-commit/checks/spell_check.rb +18 -0
- data/lib/jekyll-pre-commit/version.rb +1 -1
- data/lib/jekyll-pre-commit.rb +1 -0
- data/script/cibuild +6 -0
- metadata +37 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 048585b617af221517a1f0e0291d0d8da5b100c2
|
4
|
+
data.tar.gz: 8b8fd1f8fa90be529c30f97ca2742005c79e8429
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d12aaa2cd8e9dfc8530edc47fc12951bcf842933005ccd400694ac6587ca14dcfd70c7193e4f1ae6084c2cb4e8af7ed01a07d61dfcbf7b8793480ec8d3b3cfd8
|
7
|
+
data.tar.gz: 87d9ac132740f26266df781c8a0941a9354eaf745c2b57b230ec0016aac7fcf28819a27b241877e079a4978dd42283223621c4412174ecc8392a727f67322b03
|
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# jekyll-pre-commit
|
2
2
|
|
3
|
+
[](https://travis-ci.org/mpchadwick/jekyll-pre-commit) [](https://badge.fury.io/rb/jekyll-pre-commit)
|
4
|
+
|
3
5
|
A Jekyll plugin to make sure your post is _really_ ready for publishing.
|
4
6
|
|
5
7
|

|
@@ -10,7 +12,7 @@ Add this line to your `Gemfile`:
|
|
10
12
|
|
11
13
|
```ruby
|
12
14
|
group :jekyll_plugins do
|
13
|
-
gem 'jekyll-
|
15
|
+
gem 'jekyll-pre-commit'
|
14
16
|
end
|
15
17
|
```
|
16
18
|
|
@@ -34,6 +36,7 @@ pre-commit:
|
|
34
36
|
variables: ['description']
|
35
37
|
- check: FrontMatterVariableMeetsLengthRequirements
|
36
38
|
variables: ['description', 'title']
|
39
|
+
- check: NoDuplicateTags
|
37
40
|
```
|
38
41
|
|
39
42
|
## Available Checks
|
@@ -74,6 +77,10 @@ For example...
|
|
74
77
|
|
75
78
|
In the above, there would be a maximum length of 50 characters for the title (rather than the default of 59)
|
76
79
|
|
80
|
+
#### NoDuplicateTags
|
81
|
+
|
82
|
+
Checks that you have not accidentally introduced a duplicate tag. For example, if you have posts that are already using "MySQL" as a tag and you attempt to commit a post with the tag "mysql" (notice the difference in case-sensitivity) you will not be allowed to commit.
|
83
|
+
|
77
84
|
## Roll Your Own
|
78
85
|
|
79
86
|
You can also add your own checks. To do so, create a class in the `Jekyll::PreCommit::Checks` module and and define a `check` method. Your class should extend the `Jekyll::PreCommit::Checks::Check` class and return the `@result` instance variable.
|
data/Rakefile
CHANGED
data/jekyll-pre-commit.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "
|
21
|
+
spec.add_development_dependency "jekyll", ">= 3.3.0"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
22
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
23
25
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module PreCommit
|
3
|
+
module Checks
|
4
|
+
class NoDuplicateTags < Check
|
5
|
+
def check(staged, not_staged, site, args)
|
6
|
+
raw = Hash.new
|
7
|
+
normalized = Hash.new
|
8
|
+
not_staged.each do |post|
|
9
|
+
if post.data["tags"].size > 0
|
10
|
+
post.data["tags"].each do |tag|
|
11
|
+
if !raw[tag]
|
12
|
+
raw[tag] = post.relative_path
|
13
|
+
end
|
14
|
+
|
15
|
+
n = Jekyll::Utils.slugify(tag)
|
16
|
+
if !normalized[n]
|
17
|
+
normalized[n] = post.relative_path
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
staged.each do |post|
|
24
|
+
if post.data["tags"].size > 0
|
25
|
+
post.data["tags"].each do |tag|
|
26
|
+
n = Jekyll::Utils.slugify(tag)
|
27
|
+
|
28
|
+
if normalized[n] && !raw[tag]
|
29
|
+
@result[:ok] = false
|
30
|
+
@result[:message] += "#{tag} appears to be duplicated in #{normalized[n]}!"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
@result
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module PreCommit
|
3
|
+
module Checks
|
4
|
+
# This is a work-in-progress.
|
5
|
+
class SpellCheck < Check
|
6
|
+
def check(staged, not_staged, site, args)
|
7
|
+
staged.each do |post|
|
8
|
+
rendered = Jekyll::Renderer.new(site, post).run
|
9
|
+
rendered.gsub!('"', '\"')
|
10
|
+
mispells = `echo "#{rendered}" | sed "s/’/'/g" | aspell list -H --add-html-skip=pre --add-html-skip=code`
|
11
|
+
puts mispells
|
12
|
+
end
|
13
|
+
exit 1
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/jekyll-pre-commit.rb
CHANGED
@@ -10,3 +10,4 @@ require 'jekyll-pre-commit/checks/check.rb'
|
|
10
10
|
require 'jekyll-pre-commit/checks/front_matter_variable_exists.rb'
|
11
11
|
require 'jekyll-pre-commit/checks/front_matter_variable_is_not_duplicate.rb'
|
12
12
|
require 'jekyll-pre-commit/checks/front_matter_variable_meets_length_requirements.rb'
|
13
|
+
require 'jekyll-pre-commit/checks/no_duplicate_tags.rb'
|
data/script/cibuild
ADDED
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-pre-commit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Chadwick
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jekyll
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.3.0
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.3.0
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - ~>
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
33
|
+
version: '1.6'
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - ~>
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
40
|
+
version: '1.6'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - ~>
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
41
69
|
description:
|
42
70
|
email:
|
43
71
|
- mpchadwick@gmail.com
|
@@ -48,6 +76,8 @@ files:
|
|
48
76
|
- .editorconfig
|
49
77
|
- .gitignore
|
50
78
|
- .rspec
|
79
|
+
- .rubocop.yml
|
80
|
+
- .travis.yml
|
51
81
|
- Gemfile
|
52
82
|
- LICENSE.txt
|
53
83
|
- README.md
|
@@ -58,10 +88,13 @@ files:
|
|
58
88
|
- lib/jekyll-pre-commit/checks/front_matter_variable_exists.rb
|
59
89
|
- lib/jekyll-pre-commit/checks/front_matter_variable_is_not_duplicate.rb
|
60
90
|
- lib/jekyll-pre-commit/checks/front_matter_variable_meets_length_requirements.rb
|
91
|
+
- lib/jekyll-pre-commit/checks/no_duplicate_tags.rb
|
92
|
+
- lib/jekyll-pre-commit/checks/spell_check.rb
|
61
93
|
- lib/jekyll-pre-commit/commands.rb
|
62
94
|
- lib/jekyll-pre-commit/pre-commit
|
63
95
|
- lib/jekyll-pre-commit/runner.rb
|
64
96
|
- lib/jekyll-pre-commit/version.rb
|
97
|
+
- script/cibuild
|
65
98
|
homepage: https://github.com/mpchadwick/jekyll-pre-commit
|
66
99
|
licenses:
|
67
100
|
- MIT
|