validate-website 1.11.0 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +23 -0
- data/LICENSE +1 -1
- data/README.md +6 -1
- data/lib/validate_website/option_parser.rb +1 -1
- data/lib/validate_website/static.rb +4 -5
- data/lib/validate_website/validator.rb +4 -2
- data/lib/validate_website/version.rb +5 -1
- data/man/man1/validate-website-static.1 +5 -5
- data/man/man1/validate-website.1 +5 -5
- data/test/data/news/index.html +19 -0
- data/test/static_test.rb +2 -3
- data/test/validator_test.rb +25 -1
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e75c6ffc6e4b8087ecdeff96f028c95aec4d7a145f36e8b7f1290aac2958a711
|
4
|
+
data.tar.gz: 8e57b037034aa7e20cbba2f420f478dd66bb362b40a592a6d8c375994144fd64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 846ee7365d54a843644857244af7a6c9a1616f080a667b0dbcf5aa6fc17047d4c6902b15eacf6f88ee514466963f0899d31b60d5038c0c9a2147db1083de6186
|
7
|
+
data.tar.gz: fcc0f3f832bf725e6b2b464d500ee19663c928999a60f038298c72fe96cc0d32c06d0c58a6e8d8f2b10e6f4cc652e1cd9c0e5ac42ad6ac596c27a822edf69649
|
data/History.md
CHANGED
@@ -1,4 +1,27 @@
|
|
1
1
|
|
2
|
+
1.12.0 / 2022-11-15
|
3
|
+
===================
|
4
|
+
|
5
|
+
* Regen manpages
|
6
|
+
* Bump year
|
7
|
+
* Fix lint Metrics/AbcSize on check_page
|
8
|
+
* Fix test/static_test.rb with relative path
|
9
|
+
* Add relative link test fail
|
10
|
+
* Fix test/static_test.rb with relative path
|
11
|
+
* Nokigumbo is merged into nokogiri 1.12~
|
12
|
+
|
13
|
+
1.11.1 / 2021-01-10
|
14
|
+
===================
|
15
|
+
|
16
|
+
* Add nokogumbo doc
|
17
|
+
* nokogumbo support for ruby engine
|
18
|
+
* Add support for nokogumbo
|
19
|
+
* Add jruby to github actions
|
20
|
+
* Merge pull request #24 from @marocchino / patch-1
|
21
|
+
* Some minor improvements
|
22
|
+
* Remove travis ci
|
23
|
+
* Init github actions ci
|
24
|
+
|
2
25
|
1.11.0 / 2021-01-08
|
3
26
|
===================
|
4
27
|
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2009-
|
3
|
+
Copyright (c) 2009-2022 Laurent Arnoud <laurent@spkdev.net>
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -95,6 +95,11 @@ If the libtidy5 is found on your system this will be the default to validate
|
|
95
95
|
your html5 document. This does not depend on a tier service everything is done
|
96
96
|
locally.
|
97
97
|
|
98
|
+
#### nokogiri
|
99
|
+
|
100
|
+
nokogiri can validate html5 document without tier service but reports less
|
101
|
+
errors than tidy.
|
102
|
+
|
98
103
|
#### Validator.nu web service
|
99
104
|
|
100
105
|
When `--html5-validator nu` option is used HTML5 support is done by using the
|
@@ -145,7 +150,7 @@ See [GitHub](https://github.com/spk/validate-website/graphs/contributors).
|
|
145
150
|
|
146
151
|
The MIT License
|
147
152
|
|
148
|
-
Copyright (c) 2009-
|
153
|
+
Copyright (c) 2009-2022 Laurent Arnoud <laurent@spkdev.net>
|
149
154
|
|
150
155
|
---
|
151
156
|
[![Build](https://img.shields.io/gitlab/pipeline/spkdev/validate-website/master)](https://gitlab.com/spkdev/validate-website/-/commits/master)
|
@@ -56,7 +56,7 @@ module ValidateWebsite
|
|
56
56
|
opt.regexp('-i', '--ignore',
|
57
57
|
'Validation errors to ignore (ex: "valign|autocorrect")')
|
58
58
|
opt.string('-x', '--html5-validator',
|
59
|
-
'Change default html5 validator engine (
|
59
|
+
'Change default html5 validator engine (tidy/nu/nokogiri)',
|
60
60
|
default: DEFAULT_OPTIONS[:html5_validator])
|
61
61
|
opt.string('-5', '--html5-validator-service-url',
|
62
62
|
'Change default html5 validator service URL for "nu" engine')
|
@@ -61,17 +61,16 @@ module ValidateWebsite
|
|
61
61
|
def check_page(file, page)
|
62
62
|
if page.html? && options[:markup]
|
63
63
|
keys = %i[ignore html5_validator]
|
64
|
-
|
65
|
-
slice = Hash[[keys, options.values_at(*keys)].transpose]
|
64
|
+
slice = options.slice(*keys)
|
66
65
|
validate(page.doc, page.body, file, slice)
|
67
66
|
end
|
68
|
-
check_static_not_found(page.links) if options[:not_found]
|
67
|
+
check_static_not_found(page.links, page.url.to_s) if options[:not_found]
|
69
68
|
end
|
70
69
|
|
71
70
|
# check files linked on static document
|
72
71
|
# see lib/validate_website/runner.rb
|
73
|
-
def check_static_not_found(links)
|
74
|
-
static_links = links.map { |l| StaticLink.new(l,
|
72
|
+
def check_static_not_found(links, site = @site)
|
73
|
+
static_links = links.map { |l| StaticLink.new(l, site) }
|
75
74
|
static_links.each do |static_link|
|
76
75
|
next unless static_link.check?
|
77
76
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'uri'
|
4
4
|
|
5
|
-
require 'nokogiri'
|
5
|
+
require 'nokogiri' unless ValidateWebsite.jruby?
|
6
6
|
require 'w3c_validators'
|
7
7
|
|
8
8
|
require 'validate_website/validator_class_methods'
|
@@ -112,8 +112,10 @@ module ValidateWebsite
|
|
112
112
|
def html5_validate
|
113
113
|
if html5_validator.to_sym == :tidy && self.class.tidy
|
114
114
|
tidy_validate
|
115
|
-
|
115
|
+
elsif html5_validator.to_sym == :nu
|
116
116
|
nu_validate
|
117
|
+
else
|
118
|
+
Nokogiri::HTML5(document, max_errors: -1).errors
|
117
119
|
end
|
118
120
|
end
|
119
121
|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: validate-website-static
|
3
3
|
.\" Author: [see the "AUTHOR(S)" section]
|
4
|
-
.\" Generator: Asciidoctor
|
5
|
-
.\" Date:
|
4
|
+
.\" Generator: Asciidoctor 2.0.18
|
5
|
+
.\" Date: 2022-05-02
|
6
6
|
.\" Manual: \ \&
|
7
7
|
.\" Source: \ \&
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "VALIDATE\-WEBSITE\-STATIC" "1" "
|
10
|
+
.TH "VALIDATE\-WEBSITE\-STATIC" "1" "2022-05-02" "\ \&" "\ \&"
|
11
11
|
.ie \n(.g .ds Aq \(aq
|
12
12
|
.el .ds Aq '
|
13
13
|
.ss \n[.ss] 0
|
@@ -28,7 +28,7 @@
|
|
28
28
|
. LINKSTYLE blue R < >
|
29
29
|
.\}
|
30
30
|
.SH "NAME"
|
31
|
-
validate
|
31
|
+
validate-website-static \- check the validity of your documents
|
32
32
|
.SH "SYNOPSIS"
|
33
33
|
.sp
|
34
34
|
\fBvalidate\-website\-static\fP [\fIOPTIONS\fP]
|
@@ -82,7 +82,7 @@ Show colored output (Default: true)
|
|
82
82
|
.sp
|
83
83
|
\fB\-x\fP, \fB\-\-html5\-validator\fP \fIVALIDATOR\fP
|
84
84
|
.RS 4
|
85
|
-
Change default html5 validator engine (
|
85
|
+
Change default html5 validator engine (tidy/nu/nokogiri)
|
86
86
|
.RE
|
87
87
|
.sp
|
88
88
|
\fB\-5\fP, \fB\-\-html5\-validator\-service\-url\fP \fIURL\fP
|
data/man/man1/validate-website.1
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: validate-website
|
3
3
|
.\" Author: [see the "AUTHOR(S)" section]
|
4
|
-
.\" Generator: Asciidoctor
|
5
|
-
.\" Date:
|
4
|
+
.\" Generator: Asciidoctor 2.0.18
|
5
|
+
.\" Date: 2022-05-02
|
6
6
|
.\" Manual: \ \&
|
7
7
|
.\" Source: \ \&
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "VALIDATE\-WEBSITE" "1" "
|
10
|
+
.TH "VALIDATE\-WEBSITE" "1" "2022-05-02" "\ \&" "\ \&"
|
11
11
|
.ie \n(.g .ds Aq \(aq
|
12
12
|
.el .ds Aq '
|
13
13
|
.ss \n[.ss] 0
|
@@ -28,7 +28,7 @@
|
|
28
28
|
. LINKSTYLE blue R < >
|
29
29
|
.\}
|
30
30
|
.SH "NAME"
|
31
|
-
validate
|
31
|
+
validate-website \- Web crawler for checking the validity of your documents
|
32
32
|
.SH "SYNOPSIS"
|
33
33
|
.sp
|
34
34
|
\fBvalidate\-website\fP [\fIOPTIONS\fP]
|
@@ -87,7 +87,7 @@ Show colored output (Default: true)
|
|
87
87
|
.sp
|
88
88
|
\fB\-x\fP, \fB\-\-html5\-validator\fP \fIVALIDATOR\fP
|
89
89
|
.RS 4
|
90
|
-
Change default html5 validator engine (
|
90
|
+
Change default html5 validator engine (tidy/nu/nokogiri)
|
91
91
|
.RE
|
92
92
|
.sp
|
93
93
|
\fB\-5\fP, \fB\-\-html5\-validator\-service\-url\fP \fIURL\fP
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<title>title</title>
|
6
|
+
<meta name="description" content="" />
|
7
|
+
<meta name="keywords" content="" />
|
8
|
+
<meta name="author" content="" />
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<header>
|
12
|
+
<nav>
|
13
|
+
<ul>
|
14
|
+
<li><a href="ryzom-naissance-du-projet-libre-ryzom-forge.md" title="title">my url</a></li>
|
15
|
+
</ul>
|
16
|
+
</nav>
|
17
|
+
</header>
|
18
|
+
</body>
|
19
|
+
</html>
|
data/test/static_test.rb
CHANGED
@@ -34,15 +34,14 @@ describe ValidateWebsite::Static do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'not found' do
|
37
|
-
pattern = File.join(File.dirname(__FILE__), '**/*.html')
|
38
37
|
Dir.chdir('test/data') do
|
39
38
|
_out, _err = capture_io do
|
40
|
-
@validate_website.crawl(pattern:
|
39
|
+
@validate_website.crawl(pattern: '**/*.html',
|
41
40
|
site: 'https://linuxfr.org/',
|
42
41
|
markup: false,
|
43
42
|
not_found: true)
|
44
43
|
end
|
45
|
-
_(@validate_website.not_founds_count).must_equal
|
44
|
+
_(@validate_website.not_founds_count).must_equal 210
|
46
45
|
end
|
47
46
|
end
|
48
47
|
|
data/test/validator_test.rb
CHANGED
@@ -79,7 +79,7 @@ describe ValidateWebsite::Validator do
|
|
79
79
|
@html5_page = @http.get_page(page.url)
|
80
80
|
end
|
81
81
|
|
82
|
-
describe('
|
82
|
+
describe('with nu') do
|
83
83
|
it 'should have an array of errors' do
|
84
84
|
validator = subject.new(@html5_page.doc,
|
85
85
|
@html5_page.body,
|
@@ -99,8 +99,31 @@ describe ValidateWebsite::Validator do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
describe('with nokogiri') do
|
103
|
+
it 'have an array of errors' do
|
104
|
+
skip('nokogiri dont support jruby') if ValidateWebsite.jruby?
|
105
|
+
validator = subject.new(@html5_page.doc,
|
106
|
+
@html5_page.body,
|
107
|
+
html5_validator: :nokogiri)
|
108
|
+
_(validator.valid?).must_equal false
|
109
|
+
_(validator.errors.size).must_equal 1
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'exclude errors ignored by :ignore option' do
|
113
|
+
skip('nokogiri dont support jruby') if ValidateWebsite.jruby?
|
114
|
+
ignore = /That tag isn't allowed here/
|
115
|
+
validator = subject.new(@html5_page.doc,
|
116
|
+
@html5_page.body,
|
117
|
+
ignore: ignore,
|
118
|
+
html5_validator: :nokogiri)
|
119
|
+
_(validator.valid?).must_equal true
|
120
|
+
_(validator.errors.size).must_equal 0
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
102
124
|
describe('with tidy') do
|
103
125
|
it 'should have an array of errors' do
|
126
|
+
skip('tidy is not installed') unless ValidateWebsite::Validator.tidy
|
104
127
|
validator = subject.new(@html5_page.doc,
|
105
128
|
@html5_page.body)
|
106
129
|
_(validator.valid?).must_equal false
|
@@ -108,6 +131,7 @@ describe ValidateWebsite::Validator do
|
|
108
131
|
end
|
109
132
|
|
110
133
|
it 'should exclude errors ignored by :ignore option' do
|
134
|
+
skip('tidy is not installed') unless ValidateWebsite::Validator.tidy
|
111
135
|
ignore = /letter not allowed here|trimming empty/
|
112
136
|
validator = subject.new(@html5_page.doc,
|
113
137
|
@html5_page.body,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validate-website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Arnoud
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: crass
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: paint
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -251,6 +265,7 @@ files:
|
|
251
265
|
- test/data/html4-strict.html
|
252
266
|
- test/data/html5-fail.html
|
253
267
|
- test/data/html5.html
|
268
|
+
- test/data/news/index.html
|
254
269
|
- test/data/news/ryzom-naissance-du-projet-libre-ryzom-forge.md
|
255
270
|
- test/data/validator.nu-failure.json
|
256
271
|
- test/data/validator.nu-success.json
|
@@ -265,7 +280,7 @@ homepage: http://github.com/spk/validate-website
|
|
265
280
|
licenses:
|
266
281
|
- MIT
|
267
282
|
metadata: {}
|
268
|
-
post_install_message:
|
283
|
+
post_install_message:
|
269
284
|
rdoc_options: []
|
270
285
|
require_paths:
|
271
286
|
- lib
|
@@ -280,12 +295,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
280
295
|
- !ruby/object:Gem::Version
|
281
296
|
version: '0'
|
282
297
|
requirements: []
|
283
|
-
rubygems_version: 3.
|
284
|
-
signing_key:
|
298
|
+
rubygems_version: 3.3.15
|
299
|
+
signing_key:
|
285
300
|
specification_version: 4
|
286
301
|
summary: Web crawler for checking the validity of your documents
|
287
302
|
test_files:
|
288
|
-
- test/static_test.rb
|
289
303
|
- test/core_test.rb
|
290
|
-
- test/validator_test.rb
|
291
304
|
- test/crawler_test.rb
|
305
|
+
- test/static_test.rb
|
306
|
+
- test/validator_test.rb
|