html-proofer 1.5.4 → 1.6.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/README.md +1 -0
- data/bin/htmlproof +4 -2
- data/lib/html/proofer.rb +16 -2
- data/lib/html/proofer/version.rb +1 -1
- data/spec/html/proofer_spec.rb +23 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8328f696789f830910e2bee17b2b015e8ffc0b0d
|
4
|
+
data.tar.gz: f051884d9787841d70dfdaf2ebedc5bb7818a6e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf0bfd4a6060c0eebe58be4caad40cbada074241ed378ced25236f52e594b1ff1f1d528c4bb757fac11fe4bb3a68dce072950ccbe5eb965652179660fda19285
|
7
|
+
data.tar.gz: 53fe8b4b33e7d6507da659f18e54279c85bf741d9bb84439430147584ac1928ff085b31cd61576313098e1e383b216bdff0f844fb9e4fb0f3156c11176a2195a
|
data/README.md
CHANGED
@@ -140,6 +140,7 @@ The `HTML::Proofer` constructor takes an optional hash of additional options:
|
|
140
140
|
| `directory_index_file` | Sets the file to look for when a link refers to a directory. | `index.html` |
|
141
141
|
| `href_ignore` | An array of Strings or RegExps containing `href`s that are safe to ignore. Note that non-HTTP(S) URIs are always ignored. | `[]` |
|
142
142
|
| `alt_ignore` | An array of Strings or RegExps containing `img`s whose missing `alt` tags are safe to ignore. | `[]` |
|
143
|
+
| `file_ignore` | An array of Strings or RegExps containing file paths that are safe to ignore. | `[]` |
|
143
144
|
| `href_swap` | A hash containing key-value pairs of `RegExp => String`. It transforms links that match `RegExp` into `String` via `gsub`. | `{}` |
|
144
145
|
| `verbose` | If `true`, outputs extra information as the checking happens. Useful for debugging. | `false` |
|
145
146
|
| `only_4xx` | Only reports errors for links that fall within the 4xx status code range. | `false` |
|
data/bin/htmlproof
CHANGED
@@ -18,8 +18,9 @@ Mercenary.program(:htmlproof) do |p|
|
|
18
18
|
p.option 'favicon', '--favicon', 'Enables the favicon checker (default: `false`).'
|
19
19
|
p.option 'as-links', '--as-links', 'Assumes that `PATH` is a comma-separated array of links to check.'
|
20
20
|
p.option 'swap', '--swap regex:string,[regex:string,...]', Array, 'Array containing key-value pairs of `RegExp:String`. It transforms links that match `RegExp` into `String`'
|
21
|
-
p.option 'href_ignore', '--href_ignore link1,[link2,...]', Array, 'Array of Strings containing `href`s that are safe to ignore. Note that non-HTTP(S) URIs are always ignored.'
|
22
|
-
p.option 'alt_ignore', '--alt_ignore image1,[image2,...]', Array, 'Array of Strings containing `img`s whose missing `alt` tags are safe to ignore'
|
21
|
+
p.option 'href_ignore', '--href_ignore link1,[link2,...]', Array, 'Array of Strings or RegExps containing `href`s that are safe to ignore. Note that non-HTTP(S) URIs are always ignored.'
|
22
|
+
p.option 'alt_ignore', '--alt_ignore image1,[image2,...]', Array, 'Array of Strings or RegExps containing `img`s whose missing `alt` tags are safe to ignore'
|
23
|
+
p.option 'file_ignore', '--file_ignore file1,[file2,...]', Array, 'Array of Strings or RegExps containing file paths that are safe to ignore'
|
23
24
|
p.option 'disable_external', '--disable_external', 'Disables the external link checker (default: `false`)'
|
24
25
|
p.option 'only_4xx', '--only_4xx', 'Only reports errors for links that fall within the 4x status code range.'
|
25
26
|
p.option 'verbose', '--verbose', 'Enables more verbose logging.'
|
@@ -43,6 +44,7 @@ Mercenary.program(:htmlproof) do |p|
|
|
43
44
|
|
44
45
|
options[:href_ignore] = opts["href_ignore"] unless opts["href_ignore"].nil?
|
45
46
|
options[:alt_ignore] = opts["alt_ignore"] unless opts["alt_ignore"].nil?
|
47
|
+
options[:file_ignore] = opts["file_ignore"] unless opts["file_ignore"].nil?
|
46
48
|
options[:disable_external] = opts["disable_external"] unless opts["disable_external"].nil?
|
47
49
|
options[:only_4xx] = opts["only_4xx"] unless opts["only_4xx"].nil?
|
48
50
|
options[:favicon] = opts["favicon"] unless opts["favicon"].nil?
|
data/lib/html/proofer.rb
CHANGED
@@ -37,6 +37,7 @@ module HTML
|
|
37
37
|
:favicon => false,
|
38
38
|
:href_swap => [],
|
39
39
|
:href_ignore => [],
|
40
|
+
:file_ignore => [],
|
40
41
|
:check_external_hash => false,
|
41
42
|
:alt_ignore => [],
|
42
43
|
:disable_external => false,
|
@@ -220,14 +221,27 @@ module HTML
|
|
220
221
|
def files
|
221
222
|
if File.directory? @src
|
222
223
|
pattern = File.join @src, "**", "*#{@options[:ext]}"
|
223
|
-
Dir.glob(pattern).select { |fn| File.file? fn }
|
224
|
+
files = Dir.glob(pattern).select { |fn| File.file? fn }
|
225
|
+
files.reject { |f| ignore_file?(f) }
|
224
226
|
elsif File.extname(@src) == @options[:ext]
|
225
|
-
[@src]
|
227
|
+
[@src].reject { |f| ignore_file?(f) }
|
226
228
|
else
|
227
229
|
[]
|
228
230
|
end
|
229
231
|
end
|
230
232
|
|
233
|
+
def ignore_file?(file)
|
234
|
+
@options[:file_ignore].each do |pattern|
|
235
|
+
if pattern.is_a? String
|
236
|
+
return pattern == file
|
237
|
+
elsif pattern.is_a? Regexp
|
238
|
+
return pattern =~ file
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
false
|
243
|
+
end
|
244
|
+
|
231
245
|
def self.create_nokogiri(path)
|
232
246
|
content = File.open(path).read
|
233
247
|
Nokogiri::HTML(content)
|
data/lib/html/proofer/version.rb
CHANGED
data/spec/html/proofer_spec.rb
CHANGED
@@ -75,5 +75,28 @@ describe HTML::Proofer do
|
|
75
75
|
""".strip)
|
76
76
|
end
|
77
77
|
end
|
78
|
+
|
79
|
+
describe "file ignores" do
|
80
|
+
it "knows how to ignore a file by string" do
|
81
|
+
options = { :file_ignore => ["#{FIXTURES_DIR}/links/brokenHashInternal.html"] }
|
82
|
+
brokenHashInternalFilepath = "#{FIXTURES_DIR}/links/brokenHashInternal.html"
|
83
|
+
proofer = make_proofer(brokenHashInternalFilepath, options)
|
84
|
+
expect(proofer.failed_tests).to eq []
|
85
|
+
end
|
86
|
+
|
87
|
+
it "knows how to ignore a file by regexp" do
|
88
|
+
options = { :file_ignore => [/brokenHash/] }
|
89
|
+
brokenHashInternalFilepath = "#{FIXTURES_DIR}/links/brokenHashInternal.html"
|
90
|
+
proofer = make_proofer(brokenHashInternalFilepath, options)
|
91
|
+
expect(proofer.failed_tests).to eq []
|
92
|
+
end
|
93
|
+
|
94
|
+
it "knows how to ignore a directory by regexp" do
|
95
|
+
options = { :file_ignore => [/\S\.html/] }
|
96
|
+
linksDir = "#{FIXTURES_DIR}/links"
|
97
|
+
proofer = make_proofer(linksDir, options)
|
98
|
+
expect(proofer.failed_tests).to eq []
|
99
|
+
end
|
100
|
+
end
|
78
101
|
end
|
79
102
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-proofer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11
|
11
|
+
date: 2014-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mercenary
|