html-to-css 0.1.4 → 0.1.9
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 +4 -2
- data/lib/html-to-css.rb +46 -13
- 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: e73eec903ba4bd2697e85053366f556fd517392a5ee2ed5aa39800ef4b4382d7
|
4
|
+
data.tar.gz: 90af4e08b9a160cc6940acb22bedc1edc75296815a9f7c0c9d40afd679d4120b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 992c1b05ed9b75c6131304f89b57f6fcc48fedc64f95d77021b4fca816ef39a2f3edd080f4276b55df01f46c6097ad810b8c9fb9d25a1a2a71dbc57195039d31
|
7
|
+
data.tar.gz: f9ef14c9d00ca6153dd864627e17cea9f160ec3ad28b09bd3bf2753be11f5fa6f65ce411e37dba00a7f4915a83069d2aa92aa885ca39d3a5bb7535dcb5117fdf
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
1
|
+
�x0�j���s����$��W�C�����O"��b�m���gk&<�t������ԝl�C�O)�`5q����iA�熊�0�j� ����[w6�������!r�?��Cr�/�ilv��B���b].���4{�@���x�~�
|
2
|
-
|
2
|
+
���W�
|
3
|
+
�?���y�F���^�rKjA�fz��[���Wq7��3��X�X�x$7[y�\�M@�W��k<x����rs���\r�O*А>��_�z�Mr�� lS`�)���Y���gR_�v6��W@#S��R��n���f��]L��xj��~I,�N���@�>�l.�;a�dC�e���G��"Z��6�Г�A/��I��u��FB�)A�<I�]I�:&�@Q���2�4*Z8mS�?�o>f9����;L�˩(�ځ�m
|
4
|
+
���?M"�&��,+"�o�oVa:�dTg��'>$�=s��֦~�� w�=@µ�`�`.wDMv"IN!
|
data/lib/html-to-css.rb
CHANGED
@@ -4,33 +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)
|
34
|
+
|
35
|
+
@rand_color = rand_color
|
19
36
|
|
20
|
-
if
|
37
|
+
if s then
|
38
|
+
@doc = Rexle.new s
|
39
|
+
elsif file
|
21
40
|
|
22
|
-
@doc = Rexle.new File.read(
|
41
|
+
@doc = Rexle.new File.read(file)
|
23
42
|
|
24
43
|
else
|
25
44
|
|
26
45
|
a = Dir.glob("*.html")
|
27
46
|
@doc = Rexle.new File.read(a.pop)
|
28
|
-
a.each {|
|
47
|
+
a.each {|f| merge(@doc, Rexle.new(File.read(f)).root ) }
|
29
48
|
end
|
30
49
|
|
31
50
|
@selectors = []
|
32
51
|
@nocss = ['head']
|
33
|
-
@nolayoutcss = ['ul
|
52
|
+
@nolayoutcss = ['ul>li>a', 'ul>li>ul', 'p>a', 'div>div>\w+', 'article']
|
34
53
|
@css = []
|
35
54
|
|
36
55
|
@elements = {
|
@@ -49,8 +68,13 @@ class HtmlToCss
|
|
49
68
|
html: "background-color: :color;",
|
50
69
|
li: "background-color: :color;",
|
51
70
|
p: "background-color: :color;",
|
52
|
-
ul: "background-color: :color;"
|
71
|
+
ul: "background-color: :color;",
|
72
|
+
article: "background-color: :color;",
|
73
|
+
section: "background-color: :color;",
|
74
|
+
footer: "background-color: :color;"
|
53
75
|
}
|
76
|
+
|
77
|
+
@ignore_elements = %i(script)
|
54
78
|
end
|
55
79
|
|
56
80
|
def to_css()
|
@@ -80,7 +104,7 @@ class HtmlToCss
|
|
80
104
|
scan_to_css(type, doc.root)
|
81
105
|
@layout_selectors = @selectors.clone
|
82
106
|
@css.join "\n"
|
83
|
-
end
|
107
|
+
end
|
84
108
|
|
85
109
|
def merge(mdoc, e, axpath=[], prev_tally=[])
|
86
110
|
|
@@ -120,7 +144,8 @@ class HtmlToCss
|
|
120
144
|
if h.has_key?(:id) then
|
121
145
|
selector = '#' + h[:id]
|
122
146
|
else
|
123
|
-
|
147
|
+
ps = parent_selector
|
148
|
+
selector = (ps.empty? ? e.name : ps + '>' + e.name).strip
|
124
149
|
end
|
125
150
|
|
126
151
|
return if @nolayoutcss.detect {|x| selector =~ /#{x}/ } and type == :layout
|
@@ -130,7 +155,11 @@ class HtmlToCss
|
|
130
155
|
@selectors << selector
|
131
156
|
|
132
157
|
if @elements.has_key?(e.name.to_sym) then
|
133
|
-
|
158
|
+
#c = @rand_color ? "#%06x" % (rand * 0xffffff) : '#a5f'
|
159
|
+
c = @rand_color ? "rgba(%s,%s,%s, 0.3)" % 3.times.map{rand(255)} \
|
160
|
+
: '#a5f'
|
161
|
+
|
162
|
+
attributes = @elements[e.name.to_sym].strip.sub(':color', c).to_h
|
134
163
|
else
|
135
164
|
attributes = {}
|
136
165
|
end
|
@@ -157,8 +186,12 @@ class HtmlToCss
|
|
157
186
|
parent_selector = selector unless selector == 'html'
|
158
187
|
|
159
188
|
indent += ' '
|
189
|
+
|
160
190
|
e.elements.each do |x|
|
191
|
+
|
192
|
+
next if @ignore_elements.include? x.name.to_sym
|
161
193
|
scan_to_css type, x, indent, parent_selector
|
194
|
+
|
162
195
|
end
|
163
196
|
end
|
164
197
|
|
@@ -184,4 +217,4 @@ end
|
|
184
217
|
|
185
218
|
if __FILE__ == $0 then
|
186
219
|
css = HtmlToCss.new('index.html').to_css
|
187
|
-
end
|
220
|
+
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.9
|
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
|