html-proofer 4.0.1 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/htmlproofer +3 -1
- data/lib/html_proofer/check/images.rb +12 -3
- data/lib/html_proofer/element.rb +22 -0
- data/lib/html_proofer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c827c0b89b31ad51e1a4b177f190bdcbbb8f8fd933f235420be60da28e43cfb6
|
4
|
+
data.tar.gz: e47a4bf7944efc46622762720036c846c1ccb82acf339d99a93d7fade05eb1d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4b46613b516b0fbbaf52747d812dd390598b2bd3db6d45e342d2946ed012a7da2d47f36a0bae9a7c8b09fd484d7d0ecf2e4d12714f1044bb0ef2cfd5bd1d6da
|
7
|
+
data.tar.gz: '005058a0df180ce5619c2733438189842645840e1b94b6209bd3b2b6751b6cdd5f30b2adaa4aaed1e797e1332cfaf98388d54e06bf4497f5eb6f9796be71a1d8'
|
data/bin/htmlproofer
CHANGED
@@ -24,7 +24,7 @@ Mercenary.program(:htmlproofer) do |p|
|
|
24
24
|
p.option 'check_sri', '--check-sri', 'Check that `<link>` and `<script>` external resources use SRI (default: `false`).'
|
25
25
|
p.option 'directory_index_file', '--directory-index-file <filename>', String, 'Sets the file to look for when a link refers to a directory. (default: `index.html`)'
|
26
26
|
p.option 'disable_external', '--disable-external', 'If `true`, does not run the external link checker (default: `false`)'
|
27
|
-
p.option 'enforce_https', '--enforce-https', 'Fails a link if it\'s not marked as `https` (default: `true`).'
|
27
|
+
p.option 'enforce_https', '--enforce-https <false>', String, 'Fails a link if it\'s not marked as `https` (default: `true`).'
|
28
28
|
p.option 'extensions', '--extensions ext1,[ext2,...[', Array, 'A comma-separated list of Strings indicating the file extensions you would like to check (including the dot) (default: `.html`)'
|
29
29
|
p.option 'ignore_empty_alt', '--ignore-empty-alt', ' If `true`, ignores images with empty/missing alt tags (in other words, `<img alt>` and `<img alt="">` are valid; set this to `false` to flag those)'
|
30
30
|
p.option 'ignore_files', '--ignore-files file1,[file2,...]', Array, 'A comma-separated list of Strings or RegExps containing file paths that are safe to ignore'
|
@@ -67,6 +67,8 @@ Mercenary.program(:htmlproofer) do |p|
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
options[:enforce_https] = false if opts['enforce_https'] == "false"
|
71
|
+
|
70
72
|
options[:log_level] = opts['log_level'].to_sym unless opts['log_level'].nil?
|
71
73
|
|
72
74
|
options[:typhoeus] = HTMLProofer::Configuration.parse_json_option('typhoeus', opts['typhoeus'], symbolize_names: false) unless opts['typhoeus'].nil?
|
@@ -20,12 +20,21 @@ module HTMLProofer
|
|
20
20
|
add_failure("image has no src or srcset attribute", line: @img.line, content: @img.content)
|
21
21
|
elsif @img.url.remote?
|
22
22
|
add_to_external_urls(@img.url, @img.line)
|
23
|
-
elsif !@img.url.exists? && !@img.multiple_srcsets?
|
23
|
+
elsif !@img.url.exists? && !@img.multiple_srcsets? && !@img.multiple_sizes?
|
24
24
|
add_failure("internal image #{@img.url.raw_attribute} does not exist", line: @img.line,
|
25
25
|
content: @img.content)
|
26
26
|
elsif @img.multiple_srcsets?
|
27
|
-
srcsets
|
28
|
-
|
27
|
+
@img.srcsets.each do |srcset|
|
28
|
+
srcset_url = HTMLProofer::Attribute::Url.new(@runner, srcset, base_url: @img.base_url)
|
29
|
+
|
30
|
+
if srcset_url.remote?
|
31
|
+
add_to_external_urls(srcset_url.url, @img.line)
|
32
|
+
elsif !srcset_url.exists?
|
33
|
+
add_failure("internal image #{srcset} does not exist", line: @img.line, content: @img.content)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
elsif @img.multiple_sizes?
|
37
|
+
@img.srcsets_wo_sizes.each do |srcset|
|
29
38
|
srcset_url = HTMLProofer::Attribute::Url.new(@runner, srcset, base_url: @img.base_url)
|
30
39
|
|
31
40
|
if srcset_url.remote?
|
data/lib/html_proofer/element.rb
CHANGED
@@ -84,6 +84,28 @@ module HTMLProofer
|
|
84
84
|
!blank?(srcset) && srcset.split(",").size > 1
|
85
85
|
end
|
86
86
|
|
87
|
+
def srcsets
|
88
|
+
return nil if blank?(srcset)
|
89
|
+
|
90
|
+
srcset.split(",").map(&:strip)
|
91
|
+
end
|
92
|
+
|
93
|
+
def multiple_sizes?
|
94
|
+
return false if blank?(srcsets)
|
95
|
+
|
96
|
+
srcsets.any? do |srcset|
|
97
|
+
!blank?(srcset) && srcset.split(" ").size > 1
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def srcsets_wo_sizes
|
102
|
+
return nil if blank?(srcsets)
|
103
|
+
|
104
|
+
srcsets.map do |srcset|
|
105
|
+
srcset.split(" ").first
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
87
109
|
def ignore?
|
88
110
|
return true if @node.attributes["data-proofer-ignore"]
|
89
111
|
return true if ancestors_ignorable?
|
data/lib/html_proofer/version.rb
CHANGED
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: 4.0
|
4
|
+
version: 4.1.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: 2022-07-
|
11
|
+
date: 2022-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|