premailer 1.12.1 → 1.14.2
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 -1
- data/lib/premailer/adapter/nokogiri.rb +22 -9
- data/lib/premailer/adapter/nokogiri_fast.rb +21 -6
- data/lib/premailer/adapter/nokogumbo.rb +22 -9
- data/lib/premailer/premailer.rb +1 -1
- data/lib/premailer/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58a86c84cdb9f81b643fda4dfd1f724657e73d8ef1ba2775e90e3f38a5e7cbb6
|
4
|
+
data.tar.gz: 2e15c7ed98ec6a73c6c8c1daceef050e86dca1496ff63ff84b91c8ebae0992a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be8096560990ffc0fa62ae3593add156970263ea37a72d79ff439cc8cd097e0d293f4997ed82c1e78e02406923bda419693a751a9f4bb149388acec81b9cef2a
|
7
|
+
data.tar.gz: 3df71e24a57e2d65e1a852aa58b5fa90df4c98cd730c537b678564f4e437b75b8e2c1586a56d0ceb6e23b47b42bcc345373a5b711bf3ae5d453dece723b2bc22
|
data/README.md
CHANGED
@@ -68,7 +68,7 @@ Premailer::Adapter.use = :nokogiri_fast
|
|
68
68
|
|
69
69
|
## Ruby Compatibility
|
70
70
|
|
71
|
-
|
71
|
+
See .travis.yml for which ruby versions are tested. JRuby support is close, contributors are welcome. Checkout the latest build status on the [Travis CI dashboard](https://travis-ci.org/#!/premailer/premailer).
|
72
72
|
|
73
73
|
## Premailer-specific CSS
|
74
74
|
|
@@ -55,9 +55,7 @@ class Premailer
|
|
55
55
|
end
|
56
56
|
|
57
57
|
# Remove script tags
|
58
|
-
if @options[:remove_scripts]
|
59
|
-
doc.search("script").remove
|
60
|
-
end
|
58
|
+
doc.search("script").remove if @options[:remove_scripts]
|
61
59
|
|
62
60
|
# Read STYLE attributes and perform folding
|
63
61
|
doc.search("*[@style]").each do |el|
|
@@ -75,18 +73,33 @@ class Premailer
|
|
75
73
|
|
76
74
|
# Duplicate CSS attributes as HTML attributes
|
77
75
|
if Premailer::RELATED_ATTRIBUTES.has_key?(el.name) && @options[:css_to_attributes]
|
78
|
-
Premailer::RELATED_ATTRIBUTES[el.name].each do |
|
79
|
-
if el[
|
80
|
-
|
81
|
-
|
76
|
+
Premailer::RELATED_ATTRIBUTES[el.name].each do |css_attr, html_attr|
|
77
|
+
if el[html_attr].nil? and not merged[css_attr].empty?
|
78
|
+
new_val = merged[css_attr].dup
|
79
|
+
|
80
|
+
# Remove url() function wrapper
|
81
|
+
new_val.gsub!(/url\((['"])(.*?)\1\)/, '\2')
|
82
|
+
|
83
|
+
# Remove !important, trailing semi-colon, and leading/trailing whitespace
|
84
|
+
new_val.gsub!(/;$|\s*!important/, '').strip!
|
85
|
+
|
86
|
+
# For width and height tags, remove px units
|
87
|
+
new_val.gsub!(/(\d+)px/, '\1') if %w[width height].include?(html_attr)
|
88
|
+
|
89
|
+
# For color-related tags, convert RGB to hex if specified by options
|
90
|
+
new_val = ensure_hex(new_val) if css_attr.end_with?('color') && @options[:rgb_to_hex_attributes]
|
91
|
+
|
92
|
+
el[html_attr] = new_val
|
82
93
|
end
|
94
|
+
|
83
95
|
unless @options[:preserve_style_attribute]
|
84
96
|
merged.instance_variable_get("@declarations").tap do |declarations|
|
85
|
-
|
97
|
+
declarations.delete(css_attr)
|
86
98
|
end
|
87
99
|
end
|
88
100
|
end
|
89
101
|
end
|
102
|
+
|
90
103
|
# Collapse multiple rules into one as much as possible.
|
91
104
|
merged.create_shorthand! if @options[:create_shorthands]
|
92
105
|
|
@@ -204,7 +217,7 @@ class Premailer
|
|
204
217
|
@base_dir = File.dirname(input)
|
205
218
|
thing = File.open(input, 'r')
|
206
219
|
else
|
207
|
-
thing = open(input)
|
220
|
+
thing = URI.open(input)
|
208
221
|
end
|
209
222
|
|
210
223
|
if thing.respond_to?(:read)
|
@@ -77,18 +77,33 @@ class Premailer
|
|
77
77
|
|
78
78
|
# Duplicate CSS attributes as HTML attributes
|
79
79
|
if Premailer::RELATED_ATTRIBUTES.has_key?(el.name) && @options[:css_to_attributes]
|
80
|
-
Premailer::RELATED_ATTRIBUTES[el.name].each do |
|
81
|
-
if el[
|
82
|
-
|
83
|
-
|
80
|
+
Premailer::RELATED_ATTRIBUTES[el.name].each do |css_attr, html_attr|
|
81
|
+
if el[html_attr].nil? and not merged[css_attr].empty?
|
82
|
+
new_val = merged[css_attr].dup
|
83
|
+
|
84
|
+
# Remove url() function wrapper
|
85
|
+
new_val.gsub!(/url\((['"])(.*?)\1\)/, '\2')
|
86
|
+
|
87
|
+
# Remove !important, trailing semi-colon, and leading/trailing whitespace
|
88
|
+
new_val.gsub!(/;$|\s*!important/, '').strip!
|
89
|
+
|
90
|
+
# For width and height tags, remove px units
|
91
|
+
new_val.gsub!(/(\d+)px/, '\1') if %w[width height].include?(html_attr)
|
92
|
+
|
93
|
+
# For color-related tags, convert RGB to hex if specified by options
|
94
|
+
new_val = ensure_hex(new_val) if css_attr.end_with?('color') && @options[:rgb_to_hex_attributes]
|
95
|
+
|
96
|
+
el[html_attr] = new_val
|
84
97
|
end
|
98
|
+
|
85
99
|
unless @options[:preserve_style_attribute]
|
86
100
|
merged.instance_variable_get("@declarations").tap do |declarations|
|
87
|
-
|
101
|
+
declarations.delete(css_attr)
|
88
102
|
end
|
89
103
|
end
|
90
104
|
end
|
91
105
|
end
|
106
|
+
|
92
107
|
# Collapse multiple rules into one as much as possible.
|
93
108
|
merged.create_shorthand! if @options[:create_shorthands]
|
94
109
|
|
@@ -206,7 +221,7 @@ class Premailer
|
|
206
221
|
@base_dir = File.dirname(input)
|
207
222
|
thing = File.open(input, 'r')
|
208
223
|
else
|
209
|
-
thing = open(input)
|
224
|
+
thing = URI.open(input)
|
210
225
|
end
|
211
226
|
|
212
227
|
if thing.respond_to?(:read)
|
@@ -55,9 +55,7 @@ class Premailer
|
|
55
55
|
end
|
56
56
|
|
57
57
|
# Remove script tags
|
58
|
-
if @options[:remove_scripts]
|
59
|
-
doc.search("script").remove
|
60
|
-
end
|
58
|
+
doc.search("script").remove if @options[:remove_scripts]
|
61
59
|
|
62
60
|
# Read STYLE attributes and perform folding
|
63
61
|
doc.search("*[@style]").each do |el|
|
@@ -75,18 +73,33 @@ class Premailer
|
|
75
73
|
|
76
74
|
# Duplicate CSS attributes as HTML attributes
|
77
75
|
if Premailer::RELATED_ATTRIBUTES.has_key?(el.name) && @options[:css_to_attributes]
|
78
|
-
Premailer::RELATED_ATTRIBUTES[el.name].each do |
|
79
|
-
if el[
|
80
|
-
|
81
|
-
|
76
|
+
Premailer::RELATED_ATTRIBUTES[el.name].each do |css_attr, html_attr|
|
77
|
+
if el[html_attr].nil? and not merged[css_attr].empty?
|
78
|
+
new_val = merged[css_attr].dup
|
79
|
+
|
80
|
+
# Remove url() function wrapper
|
81
|
+
new_val.gsub!(/url\((['"])(.*?)\1\)/, '\2')
|
82
|
+
|
83
|
+
# Remove !important, trailing semi-colon, and leading/trailing whitespace
|
84
|
+
new_val.gsub!(/;$|\s*!important/, '').strip!
|
85
|
+
|
86
|
+
# For width and height tags, remove px units
|
87
|
+
new_val.gsub!(/(\d+)px/, '\1') if %w[width height].include?(html_attr)
|
88
|
+
|
89
|
+
# For color-related tags, convert RGB to hex if specified by options
|
90
|
+
new_val = ensure_hex(new_val) if css_attr.end_with?('color') && @options[:rgb_to_hex_attributes]
|
91
|
+
|
92
|
+
el[html_attr] = new_val
|
82
93
|
end
|
94
|
+
|
83
95
|
unless @options[:preserve_style_attribute]
|
84
96
|
merged.instance_variable_get("@declarations").tap do |declarations|
|
85
|
-
|
97
|
+
declarations.delete(css_attr)
|
86
98
|
end
|
87
99
|
end
|
88
100
|
end
|
89
101
|
end
|
102
|
+
|
90
103
|
# Collapse multiple rules into one as much as possible.
|
91
104
|
merged.create_shorthand! if @options[:create_shorthands]
|
92
105
|
|
@@ -204,7 +217,7 @@ class Premailer
|
|
204
217
|
@base_dir = File.dirname(input)
|
205
218
|
thing = File.open(input, 'r')
|
206
219
|
else
|
207
|
-
thing = open(input)
|
220
|
+
thing = URI.open(input)
|
208
221
|
end
|
209
222
|
|
210
223
|
if thing.respond_to?(:read)
|
data/lib/premailer/premailer.rb
CHANGED
@@ -309,7 +309,7 @@ protected
|
|
309
309
|
link_uri = File.join(File.dirname(@html_file), tag.attributes['href'].to_s.sub!(@base_url.to_s, ''))
|
310
310
|
end
|
311
311
|
# if the file does not exist locally, try to grab the remote reference
|
312
|
-
unless File.
|
312
|
+
unless File.exist?(link_uri)
|
313
313
|
link_uri = Premailer.resolve_link(tag.attributes['href'].to_s, @html_file)
|
314
314
|
end
|
315
315
|
else
|
data/lib/premailer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: premailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Dunae
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: css_parser
|
@@ -218,7 +218,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
218
|
requirements:
|
219
219
|
- - ">="
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version: 2.
|
221
|
+
version: 2.5.0
|
222
222
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
223
|
requirements:
|
224
224
|
- - ">="
|