html-to-css 0.1.5 → 0.1.10
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/html-to-css.rb +45 -19
- metadata +38 -29
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 315de96a3d972029860b987b08f1b169ae7205be9a674074bf451b7d5b2391d6
|
|
4
|
+
data.tar.gz: cd812fc610fd26d6828da99c4458e7b54ee3ccc7f9f62a455ec28e0a04fb7b80
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4bf07e1e56c15d669b353a446b76f0f64dce5c4b3dd19c510665f1a0750c80c8ca8a5d805a7d079be382d7917b00a0a66b50696ccb084ba5cc8bf04e418721e
|
|
7
|
+
data.tar.gz: d64016c0d5b3c814e17bdb105676abe106036b4387706b9e14bbfc2273789b636806d73e25b8632fea0a317bead4ef234cedd1353146944a36cff2b517e199f1
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/lib/html-to-css.rb
CHANGED
|
@@ -4,37 +4,52 @@
|
|
|
4
4
|
|
|
5
5
|
require 'rexle'
|
|
6
6
|
|
|
7
|
-
class String
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
module CSSHelper
|
|
9
|
+
def self.all_background_transparent(s)
|
|
10
|
+
s.gsub(/rgba[^\)]+\)/, 'transparent')
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module StringHelper
|
|
15
|
+
|
|
16
|
+
refine String do
|
|
17
|
+
|
|
18
|
+
def to_h()
|
|
19
|
+
Hash[
|
|
20
|
+
self.gsub(/\n/,'').split(/;\s*/).map{|x| x.split(/:/,2).map(&:strip)}
|
|
21
|
+
]
|
|
22
|
+
end
|
|
23
|
+
|
|
11
24
|
end
|
|
12
25
|
end
|
|
13
26
|
|
|
14
27
|
class HtmlToCss
|
|
15
28
|
|
|
29
|
+
using StringHelper
|
|
30
|
+
|
|
16
31
|
attr_accessor :elements
|
|
17
32
|
|
|
18
|
-
def initialize(
|
|
33
|
+
def initialize(s=nil, rand_color: true, file: nil)
|
|
19
34
|
|
|
20
|
-
|
|
21
|
-
filename = opt[:filename]
|
|
22
|
-
@rand_color = opt[:rand_color]
|
|
35
|
+
@rand_color = rand_color
|
|
23
36
|
|
|
24
|
-
if
|
|
37
|
+
if s then
|
|
38
|
+
@doc = Rexle.new s
|
|
39
|
+
elsif file
|
|
25
40
|
|
|
26
|
-
@doc = Rexle.new File.read(
|
|
41
|
+
@doc = Rexle.new File.read(file)
|
|
27
42
|
|
|
28
43
|
else
|
|
29
44
|
|
|
30
45
|
a = Dir.glob("*.html")
|
|
31
46
|
@doc = Rexle.new File.read(a.pop)
|
|
32
|
-
a.each {|
|
|
47
|
+
a.each {|f| merge(@doc, Rexle.new(File.read(f)).root ) }
|
|
33
48
|
end
|
|
34
49
|
|
|
35
50
|
@selectors = []
|
|
36
|
-
@nocss =
|
|
37
|
-
@nolayoutcss = ['ul
|
|
51
|
+
@nocss = %i(head script)
|
|
52
|
+
@nolayoutcss = ['ul>li>a', 'ul>li>ul', 'p>a', 'div>div>\w+', 'article']
|
|
38
53
|
@css = []
|
|
39
54
|
|
|
40
55
|
@elements = {
|
|
@@ -53,8 +68,12 @@ class HtmlToCss
|
|
|
53
68
|
html: "background-color: :color;",
|
|
54
69
|
li: "background-color: :color;",
|
|
55
70
|
p: "background-color: :color;",
|
|
56
|
-
ul: "background-color: :color;"
|
|
71
|
+
ul: "background-color: :color;",
|
|
72
|
+
article: "background-color: :color;",
|
|
73
|
+
section: "background-color: :color;",
|
|
74
|
+
footer: "background-color: :color;"
|
|
57
75
|
}
|
|
76
|
+
|
|
58
77
|
end
|
|
59
78
|
|
|
60
79
|
def to_css()
|
|
@@ -84,7 +103,7 @@ class HtmlToCss
|
|
|
84
103
|
scan_to_css(type, doc.root)
|
|
85
104
|
@layout_selectors = @selectors.clone
|
|
86
105
|
@css.join "\n"
|
|
87
|
-
end
|
|
106
|
+
end
|
|
88
107
|
|
|
89
108
|
def merge(mdoc, e, axpath=[], prev_tally=[])
|
|
90
109
|
|
|
@@ -118,13 +137,14 @@ class HtmlToCss
|
|
|
118
137
|
|
|
119
138
|
def scan_to_css(type, e, indent='', parent_selector='', &blk)
|
|
120
139
|
|
|
121
|
-
return if @nocss.include? e.name
|
|
140
|
+
return if @nocss.include? e.name.to_sym
|
|
122
141
|
h = e.attributes
|
|
123
142
|
|
|
124
143
|
if h.has_key?(:id) then
|
|
125
144
|
selector = '#' + h[:id]
|
|
126
145
|
else
|
|
127
|
-
|
|
146
|
+
ps = parent_selector
|
|
147
|
+
selector = (ps.empty? ? e.name : ps + '>' + e.name).strip
|
|
128
148
|
end
|
|
129
149
|
|
|
130
150
|
return if @nolayoutcss.detect {|x| selector =~ /#{x}/ } and type == :layout
|
|
@@ -134,8 +154,11 @@ class HtmlToCss
|
|
|
134
154
|
@selectors << selector
|
|
135
155
|
|
|
136
156
|
if @elements.has_key?(e.name.to_sym) then
|
|
137
|
-
c = @rand_color ? "
|
|
138
|
-
|
|
157
|
+
#c = @rand_color ? "#%06x" % (rand * 0xffffff) : '#a5f'
|
|
158
|
+
c = @rand_color ? "rgba(%s,%s,%s, 0.3)" % 3.times.map{rand(255)} \
|
|
159
|
+
: '#a5f'
|
|
160
|
+
|
|
161
|
+
attributes = @elements[e.name.to_sym].strip.sub(':color', c).to_h
|
|
139
162
|
else
|
|
140
163
|
attributes = {}
|
|
141
164
|
end
|
|
@@ -162,8 +185,11 @@ class HtmlToCss
|
|
|
162
185
|
parent_selector = selector unless selector == 'html'
|
|
163
186
|
|
|
164
187
|
indent += ' '
|
|
188
|
+
|
|
165
189
|
e.elements.each do |x|
|
|
190
|
+
|
|
166
191
|
scan_to_css type, x, indent, parent_selector
|
|
192
|
+
|
|
167
193
|
end
|
|
168
194
|
end
|
|
169
195
|
|
|
@@ -189,4 +215,4 @@ end
|
|
|
189
215
|
|
|
190
216
|
if __FILE__ == $0 then
|
|
191
217
|
css = HtmlToCss.new('index.html').to_css
|
|
192
|
-
end
|
|
218
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: html-to-css
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- James Robertson
|
|
@@ -10,45 +10,55 @@ bindir: bin
|
|
|
10
10
|
cert_chain:
|
|
11
11
|
- |
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNzEwMTA0ODMyWhcN
|
|
15
|
+
MjEwNzEwMTA0ODMyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCsnbV9
|
|
17
|
+
iXTJ5qFo58IYXu+lfM1X8aNNTaMBEYbNXS90l1GYeHRo2CDG9l7U1C5fI9bOtXuw
|
|
18
|
+
FGxZEVL/rmvzoJ4iwwxQnuqqWVev/ZeEGSknCcCk0uXEZJorq2MYwG/oV72WcgkD
|
|
19
|
+
f+YRtHU36B4Gv45THmOUPWvbyv/a8/xafc291mQ7gN1zNC5vvso6xFNfDLCWq4nt
|
|
20
|
+
L78KXrSD9dvcSYHkx98fBVBYqJJFrlvHsELhaTlBe2sSGzt/jju6vkwaivSBf8s6
|
|
21
|
+
xi1v+3SdD5tkq7D6Za1oRhbnn+dy1whid+AdshLfAj4dNj5MJnfe/ZYyKujj4pbc
|
|
22
|
+
yI38Mz3lynC37Uu72DOJVZzlP/7wV64WNIE4ADJ1G08BEvDt5TKnKtdqZjkFvNfH
|
|
23
|
+
vR01oppHdCSw3t67fXNTQ2zOLVE0iG+Uz8RpxP8vbRpYhGz28Ng0D/yqE6AdS9s6
|
|
24
|
+
vwp+ySmEWN1oLbn2QNKcfcjBHtzuiRXt2W+ymH+xAl4B+9mnR0dHuGsrSSkCAwEA
|
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUmmLPRqL1
|
|
26
|
+
qBREE7/GoCBSA6VpiwcwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAgJdiEoN8bkBv93k7ApN5UVZpHGwEahp74kzQbzYl
|
|
29
|
+
8BqUQKq0TkrxETcoadR7znI6oSnxxEbo7oGb7NsmIFe/CBke+y3YwTrnDTsLliOh
|
|
30
|
+
VElqCnUNVWcdnB13t8mrTp5YlsT3TbXb92qUKannJ+dP4a/jfDVfhyEbolRxHP6f
|
|
31
|
+
Dijt0eccGBf0Ay5RPdBlq79o9zRp9A5blTnF/KyQuy93wzBgClgV8qpwxnWCI3+l
|
|
32
|
+
QjAot0vxs1FoA9yG/0p8J+0kUyGO4/QQpdpJPujktofSYG9I7YzS52pWi3gwY1DB
|
|
33
|
+
P1VnK8PWvwSHsjc28wL97f4GjRgcutkDp+B9sueDNLUdUfzfgyQiyFteClutTLtR
|
|
34
|
+
EVy8/18sKX5zH+twpDhOIJiPdAzEoLgnyAwXxKJACzbS/zJ/jQnArJnPmsae7Qh7
|
|
35
|
+
RXzNbBKUJMbBruvpkMfMEwSIxsSWWBtVBadf8+Fdia8+8CHXA586gtxhaaecM6cd
|
|
36
|
+
VTIqqQ460pE389pQ9ggwXUiZ
|
|
33
37
|
-----END CERTIFICATE-----
|
|
34
|
-
date:
|
|
38
|
+
date: 2020-07-10 00:00:00.000000000 Z
|
|
35
39
|
dependencies:
|
|
36
40
|
- !ruby/object:Gem::Dependency
|
|
37
41
|
name: rexle
|
|
38
42
|
requirement: !ruby/object:Gem::Requirement
|
|
39
43
|
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.4'
|
|
40
47
|
- - ">="
|
|
41
48
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
49
|
+
version: 1.4.12
|
|
43
50
|
type: :runtime
|
|
44
51
|
prerelease: false
|
|
45
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
46
53
|
requirements:
|
|
54
|
+
- - "~>"
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '1.4'
|
|
47
57
|
- - ">="
|
|
48
58
|
- !ruby/object:Gem::Version
|
|
49
|
-
version:
|
|
59
|
+
version: 1.4.12
|
|
50
60
|
description:
|
|
51
|
-
email: james@
|
|
61
|
+
email: james@jamesrobertson.eu
|
|
52
62
|
executables: []
|
|
53
63
|
extensions: []
|
|
54
64
|
extra_rdoc_files: []
|
|
@@ -66,16 +76,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
66
76
|
requirements:
|
|
67
77
|
- - ">="
|
|
68
78
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
79
|
+
version: 2.1.2
|
|
70
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
81
|
requirements:
|
|
72
82
|
- - ">="
|
|
73
83
|
- !ruby/object:Gem::Version
|
|
74
84
|
version: '0'
|
|
75
85
|
requirements: []
|
|
76
|
-
|
|
77
|
-
rubygems_version: 2.0.0.rc.2
|
|
86
|
+
rubygems_version: 3.0.3
|
|
78
87
|
signing_key:
|
|
79
88
|
specification_version: 4
|
|
80
|
-
summary:
|
|
89
|
+
summary: Generates CSS from HTML passed into it.
|
|
81
90
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|