html-proofer-mailto_awesome 1.0.6 → 2.0.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/.github/FUNDING.yml +1 -1
- data/.github/workflows/ruby.yml +5 -7
- data/Gemfile.lock +85 -50
- data/README.md +3 -3
- data/html-proofer-mailto_awesome.gemspec +15 -5
- data/lib/html/proofer/mailto_awesome/version.rb +3 -1
- data/lib/html-proofer-mailto_awesome.rb +10 -0
- data/lib/mailto_awesome.rb +24 -25
- metadata +18 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9833f8b94e76e14326e0f45a5db0231477a8384e0d84496265d94f412078716d
|
4
|
+
data.tar.gz: 2ecd2f2141de8b9f56b7a7c85cb11b17ca2f3bc3efb29041217adf019c98c841
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33c400bd890f48c071815d5d2dfa14d8892e502c7c72617be6c9525c67dabd4bf13c1a6f66052939ae6eaede31050a726a36a20e84dacac0cb71d8dea7306018
|
7
|
+
data.tar.gz: 3953271fb34870739b71a4a37976e853c54feb9408a6df6a4355e70d017dd374011e6ce1bd6da9dd2edf9fbca08230f60cae573415d520fbc655f24e09767b3c
|
data/.github/FUNDING.yml
CHANGED
data/.github/workflows/ruby.yml
CHANGED
@@ -22,15 +22,13 @@ jobs:
|
|
22
22
|
runs-on: ubuntu-latest
|
23
23
|
strategy:
|
24
24
|
matrix:
|
25
|
-
|
26
|
-
|
25
|
+
# Only test currently supported Ruby versions: https://www.ruby-lang.org/en/downloads/branches/
|
26
|
+
ruby-version: ['3.1', '3.2', '3.3']
|
27
|
+
fail-fast: false
|
27
28
|
steps:
|
28
|
-
- uses: actions/checkout@
|
29
|
+
- uses: actions/checkout@v4
|
29
30
|
- name: Set up Ruby
|
30
|
-
|
31
|
-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
32
|
-
# uses: ruby/setup-ruby@v1
|
33
|
-
uses: ruby/setup-ruby@ee2113536afb7f793eed4ce60e8d3b26db912da4 # v1.127.0
|
31
|
+
uses: ruby/setup-ruby@v1
|
34
32
|
with:
|
35
33
|
ruby-version: ${{ matrix.ruby-version }}
|
36
34
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
data/Gemfile.lock
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
html-proofer-mailto_awesome (
|
4
|
+
html-proofer-mailto_awesome (2.0.0)
|
5
5
|
html-proofer (~> 5.0, >= 5.0.4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
Ascii85 (
|
11
|
-
addressable (2.8.
|
12
|
-
public_suffix (>= 2.0.2, <
|
10
|
+
Ascii85 (2.0.1)
|
11
|
+
addressable (2.8.7)
|
12
|
+
public_suffix (>= 2.0.2, < 7.0)
|
13
13
|
afm (0.2.2)
|
14
|
-
async (2.
|
15
|
-
console (~> 1.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
async (2.21.2)
|
15
|
+
console (~> 1.29)
|
16
|
+
fiber-annotation
|
17
|
+
io-event (~> 1.6, >= 1.6.5)
|
18
|
+
base64 (0.3.0)
|
19
|
+
bigdecimal (3.2.3)
|
20
|
+
console (1.30.2)
|
21
|
+
fiber-annotation
|
22
|
+
fiber-local (~> 1.1)
|
23
|
+
json
|
24
|
+
diff-lcs (1.6.2)
|
25
|
+
ethon (0.15.0)
|
22
26
|
ffi (>= 1.15.0)
|
23
|
-
ffi (1.
|
24
|
-
|
27
|
+
ffi (1.17.2-aarch64-linux-gnu)
|
28
|
+
ffi (1.17.2-aarch64-linux-musl)
|
29
|
+
ffi (1.17.2-arm-linux-gnu)
|
30
|
+
ffi (1.17.2-arm-linux-musl)
|
31
|
+
ffi (1.17.2-arm64-darwin)
|
32
|
+
ffi (1.17.2-x86_64-darwin)
|
33
|
+
ffi (1.17.2-x86_64-linux-gnu)
|
34
|
+
ffi (1.17.2-x86_64-linux-musl)
|
35
|
+
fiber-annotation (0.2.0)
|
36
|
+
fiber-local (1.1.0)
|
37
|
+
fiber-storage
|
38
|
+
fiber-storage (1.0.1)
|
25
39
|
hashery (2.1.2)
|
26
|
-
html-proofer (5.0.
|
40
|
+
html-proofer (5.0.10)
|
27
41
|
addressable (~> 2.3)
|
28
42
|
async (~> 2.1)
|
29
43
|
nokogiri (~> 1.13)
|
@@ -32,54 +46,75 @@ GEM
|
|
32
46
|
typhoeus (~> 1.3)
|
33
47
|
yell (~> 2.0)
|
34
48
|
zeitwerk (~> 2.5)
|
35
|
-
io-event (1.
|
36
|
-
|
37
|
-
nokogiri (1.
|
38
|
-
mini_portile2 (~> 2.8.0)
|
49
|
+
io-event (1.11.2)
|
50
|
+
json (2.14.1)
|
51
|
+
nokogiri (1.18.10-aarch64-linux-gnu)
|
39
52
|
racc (~> 1.4)
|
40
|
-
|
41
|
-
|
42
|
-
|
53
|
+
nokogiri (1.18.10-aarch64-linux-musl)
|
54
|
+
racc (~> 1.4)
|
55
|
+
nokogiri (1.18.10-arm-linux-gnu)
|
56
|
+
racc (~> 1.4)
|
57
|
+
nokogiri (1.18.10-arm-linux-musl)
|
58
|
+
racc (~> 1.4)
|
59
|
+
nokogiri (1.18.10-arm64-darwin)
|
60
|
+
racc (~> 1.4)
|
61
|
+
nokogiri (1.18.10-x86_64-darwin)
|
62
|
+
racc (~> 1.4)
|
63
|
+
nokogiri (1.18.10-x86_64-linux-gnu)
|
64
|
+
racc (~> 1.4)
|
65
|
+
nokogiri (1.18.10-x86_64-linux-musl)
|
66
|
+
racc (~> 1.4)
|
67
|
+
pdf-reader (2.15.0)
|
68
|
+
Ascii85 (>= 1.0, < 3.0, != 2.0.0)
|
69
|
+
afm (>= 0.2.1, < 2)
|
43
70
|
hashery (~> 2.0)
|
44
71
|
ruby-rc4
|
45
72
|
ttfunk
|
46
|
-
public_suffix (
|
47
|
-
racc (1.
|
73
|
+
public_suffix (6.0.2)
|
74
|
+
racc (1.8.1)
|
48
75
|
rainbow (3.1.1)
|
49
|
-
rake (13.0
|
50
|
-
rspec (3.
|
51
|
-
rspec-core (~> 3.
|
52
|
-
rspec-expectations (~> 3.
|
53
|
-
rspec-mocks (~> 3.
|
54
|
-
rspec-core (3.
|
55
|
-
rspec-support (~> 3.
|
56
|
-
rspec-expectations (3.
|
76
|
+
rake (13.3.0)
|
77
|
+
rspec (3.13.1)
|
78
|
+
rspec-core (~> 3.13.0)
|
79
|
+
rspec-expectations (~> 3.13.0)
|
80
|
+
rspec-mocks (~> 3.13.0)
|
81
|
+
rspec-core (3.13.5)
|
82
|
+
rspec-support (~> 3.13.0)
|
83
|
+
rspec-expectations (3.13.5)
|
57
84
|
diff-lcs (>= 1.2.0, < 2.0)
|
58
|
-
rspec-support (~> 3.
|
59
|
-
rspec-mocks (3.
|
85
|
+
rspec-support (~> 3.13.0)
|
86
|
+
rspec-mocks (3.13.5)
|
60
87
|
diff-lcs (>= 1.2.0, < 2.0)
|
61
|
-
rspec-support (~> 3.
|
62
|
-
rspec-support (3.
|
88
|
+
rspec-support (~> 3.13.0)
|
89
|
+
rspec-support (3.13.6)
|
63
90
|
ruby-rc4 (0.1.5)
|
64
|
-
timecop (0.9.
|
65
|
-
|
66
|
-
|
67
|
-
typhoeus (1.
|
68
|
-
ethon (>= 0.9.0)
|
69
|
-
vcr (6.1
|
91
|
+
timecop (0.9.10)
|
92
|
+
ttfunk (1.8.0)
|
93
|
+
bigdecimal (~> 3.1)
|
94
|
+
typhoeus (1.5.0)
|
95
|
+
ethon (>= 0.9.0, < 0.16.0)
|
96
|
+
vcr (6.3.1)
|
97
|
+
base64
|
70
98
|
yell (2.2.2)
|
71
|
-
zeitwerk (2.6.
|
99
|
+
zeitwerk (2.6.18)
|
72
100
|
|
73
101
|
PLATFORMS
|
74
|
-
|
102
|
+
aarch64-linux-gnu
|
103
|
+
aarch64-linux-musl
|
104
|
+
arm-linux-gnu
|
105
|
+
arm-linux-musl
|
106
|
+
arm64-darwin
|
107
|
+
x86_64-darwin
|
108
|
+
x86_64-linux-gnu
|
109
|
+
x86_64-linux-musl
|
75
110
|
|
76
111
|
DEPENDENCIES
|
77
|
-
bundler (
|
112
|
+
bundler (>= 2.0)
|
78
113
|
html-proofer-mailto_awesome!
|
79
|
-
rake (
|
80
|
-
rspec (~> 3.12
|
81
|
-
timecop (~> 0.9
|
82
|
-
vcr (~> 6.1
|
114
|
+
rake (>= 13.0)
|
115
|
+
rspec (~> 3.12)
|
116
|
+
timecop (~> 0.9)
|
117
|
+
vcr (~> 6.1)
|
83
118
|
|
84
119
|
BUNDLED WITH
|
85
|
-
2.
|
120
|
+
2.6.9
|
data/README.md
CHANGED
@@ -7,13 +7,13 @@ A custom [html-proofer](https://github.com/gjtorikian/html-proofer) test that ma
|
|
7
7
|
|
8
8
|
We should use awesome links as psychological warfare against users. Users will send us emails with stupid or annoying content that we don't want. At big companies (like Amazon) they have abandoned email altogether because of this reason. So instead we prefill the email with the message we want to receive. It takes active cognitive effort for the user to put in their unwanted message.
|
9
9
|
|
10
|
-
For example, this is a not-awesome `mailto` link:
|
10
|
+
❌ For example, this is a not-awesome `mailto` link:
|
11
11
|
|
12
12
|
```html
|
13
13
|
<a href="mailto:support@pacificmedicaltraining.com">Email us</a>
|
14
14
|
```
|
15
15
|
|
16
|
-
This is an awesome link:
|
16
|
+
✅ This is an awesome link:
|
17
17
|
|
18
18
|
```html
|
19
19
|
<a href="mailto:support@pacificmedicaltraining.com?subject=Signing up&body=Hello,\nI'd like to sign up for your course, can you please send me more information.">Email us</a>
|
@@ -77,4 +77,4 @@ gem bump
|
|
77
77
|
rm html-proofer-mailto_awesome-*.gem
|
78
78
|
gem build html-proofer-mailto_awesome.gemspec
|
79
79
|
gem push html-proofer-mailto_awesome-*.gem
|
80
|
-
```
|
80
|
+
```
|
@@ -21,10 +21,20 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
|
25
|
-
spec.
|
24
|
+
# Minimum Ruby version supported by the Ruby project: https://www.ruby-lang.org/en/downloads/branches/
|
25
|
+
spec.required_ruby_version = ">= 3.1.0"
|
26
|
+
|
27
|
+
spec.metadata = {
|
28
|
+
"bug_tracker_uri" => "https://github.com/fulldecent/html-proofer-mailto_awesome/issues",
|
29
|
+
"source_code_uri" => "https://github.com/fulldecent/html-proofer-mailto_awesome",
|
30
|
+
"homepage_uri" => "https://github.com/fulldecent/html-proofer-mailto_awesome",
|
31
|
+
"rubygems_mfa_required" => "true"
|
32
|
+
}
|
33
|
+
|
34
|
+
spec.add_development_dependency "bundler", ">= 2.0"
|
35
|
+
spec.add_development_dependency "rake", ">= 13.0"
|
26
36
|
spec.add_runtime_dependency 'html-proofer', '~> 5.0', '>= 5.0.4'
|
27
|
-
spec.add_development_dependency 'rspec', '~> 3.12'
|
28
|
-
spec.add_development_dependency 'vcr', '~> 6.1'
|
29
|
-
spec.add_development_dependency 'timecop', '~> 0.9'
|
37
|
+
spec.add_development_dependency 'rspec', '~> 3.12'
|
38
|
+
spec.add_development_dependency 'vcr', '~> 6.1'
|
39
|
+
spec.add_development_dependency 'timecop', '~> 0.9'
|
30
40
|
end
|
data/lib/mailto_awesome.rb
CHANGED
@@ -1,32 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "html/proofer/mailto_awesome/version"
|
2
4
|
|
3
|
-
module
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
if mailto? && !awesome?
|
25
|
-
add_issue("This is a not-awesome mailto link!", line: line, content: content)
|
26
|
-
end
|
5
|
+
module HTMLProofer
|
6
|
+
class Check
|
7
|
+
class MailtoAwesome < HTMLProofer::Check
|
8
|
+
def mailto?
|
9
|
+
return false if @link.ignore? || @link.href.nil?
|
10
|
+
@link.href.match(/^mailto:/i)
|
11
|
+
end
|
12
|
+
|
13
|
+
def awesome?
|
14
|
+
@link.href.downcase.include?('subject=') && @link.href.downcase.include?('body=')
|
15
|
+
end
|
16
|
+
|
17
|
+
def run
|
18
|
+
# Check if the mailto awesome check is enabled via runner options
|
19
|
+
return unless @runner && @runner.instance_variable_get('@options')&.fetch(:check_mailto_awesome, false)
|
20
|
+
|
21
|
+
@html.css('a').each do |node|
|
22
|
+
@link = create_element(node)
|
23
|
+
|
24
|
+
if mailto? && !awesome?
|
25
|
+
add_failure("This is a not-awesome mailto link!", element: @link)
|
27
26
|
end
|
28
27
|
end
|
29
|
-
end
|
28
|
+
end
|
30
29
|
end
|
31
30
|
end
|
32
31
|
end
|
metadata
CHANGED
@@ -1,43 +1,42 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-proofer-mailto_awesome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Entriken
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: bundler
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0
|
18
|
+
version: '2.0'
|
20
19
|
type: :development
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
|
-
- - "
|
23
|
+
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.0
|
25
|
+
version: '2.0'
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: rake
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
|
-
- - "
|
30
|
+
- - ">="
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: 13.0
|
32
|
+
version: '13.0'
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
|
-
- - "
|
37
|
+
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: 13.0
|
39
|
+
version: '13.0'
|
41
40
|
- !ruby/object:Gem::Dependency
|
42
41
|
name: html-proofer
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,9 +64,6 @@ dependencies:
|
|
65
64
|
- - "~>"
|
66
65
|
- !ruby/object:Gem::Version
|
67
66
|
version: '3.12'
|
68
|
-
- - ">="
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 3.12.0
|
71
67
|
type: :development
|
72
68
|
prerelease: false
|
73
69
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -75,9 +71,6 @@ dependencies:
|
|
75
71
|
- - "~>"
|
76
72
|
- !ruby/object:Gem::Version
|
77
73
|
version: '3.12'
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: 3.12.0
|
81
74
|
- !ruby/object:Gem::Dependency
|
82
75
|
name: vcr
|
83
76
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,9 +78,6 @@ dependencies:
|
|
85
78
|
- - "~>"
|
86
79
|
- !ruby/object:Gem::Version
|
87
80
|
version: '6.1'
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: 6.1.0
|
91
81
|
type: :development
|
92
82
|
prerelease: false
|
93
83
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -95,9 +85,6 @@ dependencies:
|
|
95
85
|
- - "~>"
|
96
86
|
- !ruby/object:Gem::Version
|
97
87
|
version: '6.1'
|
98
|
-
- - ">="
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version: 6.1.0
|
101
88
|
- !ruby/object:Gem::Dependency
|
102
89
|
name: timecop
|
103
90
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,9 +92,6 @@ dependencies:
|
|
105
92
|
- - "~>"
|
106
93
|
- !ruby/object:Gem::Version
|
107
94
|
version: '0.9'
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.9.6
|
111
95
|
type: :development
|
112
96
|
prerelease: false
|
113
97
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -115,9 +99,6 @@ dependencies:
|
|
115
99
|
- - "~>"
|
116
100
|
- !ruby/object:Gem::Version
|
117
101
|
version: '0.9'
|
118
|
-
- - ">="
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 0.9.6
|
121
102
|
description: A custom html-proofer test that makes your mailto links awesome
|
122
103
|
email: github.com@phor.net
|
123
104
|
executables: []
|
@@ -136,13 +117,17 @@ files:
|
|
136
117
|
- bin/console
|
137
118
|
- bin/setup
|
138
119
|
- html-proofer-mailto_awesome.gemspec
|
120
|
+
- lib/html-proofer-mailto_awesome.rb
|
139
121
|
- lib/html/proofer/mailto_awesome/version.rb
|
140
122
|
- lib/mailto_awesome.rb
|
141
123
|
homepage: https://github.com/fulldecent/html-proofer-mailto_awesome
|
142
124
|
licenses:
|
143
125
|
- MIT
|
144
|
-
metadata:
|
145
|
-
|
126
|
+
metadata:
|
127
|
+
bug_tracker_uri: https://github.com/fulldecent/html-proofer-mailto_awesome/issues
|
128
|
+
source_code_uri: https://github.com/fulldecent/html-proofer-mailto_awesome
|
129
|
+
homepage_uri: https://github.com/fulldecent/html-proofer-mailto_awesome
|
130
|
+
rubygems_mfa_required: 'true'
|
146
131
|
rdoc_options: []
|
147
132
|
require_paths:
|
148
133
|
- lib
|
@@ -150,15 +135,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
135
|
requirements:
|
151
136
|
- - ">="
|
152
137
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
138
|
+
version: 3.1.0
|
154
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
140
|
requirements:
|
156
141
|
- - ">="
|
157
142
|
- !ruby/object:Gem::Version
|
158
143
|
version: '0'
|
159
144
|
requirements: []
|
160
|
-
rubygems_version: 3.
|
161
|
-
signing_key:
|
145
|
+
rubygems_version: 3.6.9
|
162
146
|
specification_version: 4
|
163
147
|
summary: Checker for mailto links
|
164
148
|
test_files: []
|