hyde-page-css 0.4.0 → 0.4.1
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/lib/hyde-page-css.rb +39 -31
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6ec003b0a85dea4cbf951dbd077514f5db76261f41e65958b3275a5eba2368c
|
4
|
+
data.tar.gz: c9b997562983ef4957bfaa13dde64c034ec60df290252244773e645b802b8ed4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fd1e02c5900318abe34d80f696a00c02072962086ed5110edcfed657946f7d98b855ac618c0101dc2a2f45988c9f0f7be978d3bfffe46d11bae44b7fc2c761c
|
7
|
+
data.tar.gz: 485f1c4392783641de2a3f3dee6d63d3c364e4c5e99f240a4d470058336916032366e3c104404a0b859beba7977e015dd77178022d6be8fb238b009d823d0843
|
data/lib/hyde-page-css.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "jekyll"
|
2
|
+
require "digest"
|
3
3
|
|
4
|
-
Jekyll::Hooks.register :pages, :
|
5
|
-
Hyde::Page::Css.new(page).run
|
4
|
+
Jekyll::Hooks.register :pages, :post_init do |page|
|
5
|
+
Hyde::Page::Css.new(page).run if page.instance_of? Jekyll::Page
|
6
6
|
end
|
7
7
|
|
8
8
|
module Hyde
|
9
9
|
module Page
|
10
10
|
class Css
|
11
|
-
VERSION = "0.4.
|
11
|
+
VERSION = "0.4.1"
|
12
12
|
end
|
13
13
|
|
14
14
|
class GeneratedCssFile < Jekyll::StaticFile
|
@@ -54,7 +54,7 @@ module Hyde
|
|
54
54
|
@page = page
|
55
55
|
@site = page.site
|
56
56
|
@config = fetch_config
|
57
|
-
@site.data[
|
57
|
+
@site.data["_hyde_pages_cache"] ||= {}
|
58
58
|
|
59
59
|
if keep_files? && !dev_mode?
|
60
60
|
@site.config.fetch("keep_files").push(destination)
|
@@ -64,45 +64,53 @@ module Hyde
|
|
64
64
|
def run
|
65
65
|
css = fetch_css(@page)
|
66
66
|
layout = fetch_layout(fetch_layout_name(@page))
|
67
|
-
|
68
|
-
return if
|
67
|
+
css_groups = parent_layout_css(layout, css).reverse
|
68
|
+
return if css_groups.empty?
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
for group in css_groups
|
71
|
+
lookup_name = names_to_key(group)
|
72
|
+
cache_entry = @site.data["_hyde_pages_cache"].fetch(lookup_name, nil)
|
72
73
|
|
73
|
-
|
74
|
-
|
74
|
+
if cache_entry.nil?
|
75
|
+
data = concatenate_files(group)
|
76
|
+
return if data == ""
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
+
data = minify(data)
|
79
|
+
return if data == ""
|
78
80
|
|
79
|
-
|
81
|
+
generated_file = generate_file(group, data)
|
80
82
|
|
81
|
-
|
82
|
-
|
83
|
+
# file already exists, so skip writing out the data to disk
|
84
|
+
return unless @site.static_files.find { |static_file| static_file.name == generated_file.name }.nil?
|
83
85
|
|
84
|
-
|
85
|
-
|
86
|
+
# place file data into the new file
|
87
|
+
generated_file.file_contents = data
|
86
88
|
|
87
|
-
|
88
|
-
|
89
|
+
# assign static file to list for jekyll to render
|
90
|
+
@site.static_files << generated_file
|
89
91
|
|
90
|
-
|
91
|
-
|
92
|
+
# add to cache
|
93
|
+
cache_entry = {
|
94
|
+
url: generated_file.url,
|
95
|
+
data: data
|
96
|
+
}
|
97
|
+
@site.data["_hyde_pages_cache"][lookup_name] = cache_entry
|
98
|
+
end
|
92
99
|
|
93
|
-
|
94
|
-
|
100
|
+
# assign to page.data.css_files for liquid output
|
101
|
+
add_to_urls(cache_entry.fetch(:url, nil)).compact
|
102
|
+
end
|
95
103
|
end
|
96
104
|
|
97
105
|
private
|
98
106
|
|
99
107
|
def names_to_key(names)
|
100
|
-
names.join(
|
108
|
+
names.join("-")
|
101
109
|
end
|
102
110
|
|
103
111
|
def add_to_urls(url)
|
104
|
-
@
|
105
|
-
@
|
112
|
+
@page.data["css_files"] ||= []
|
113
|
+
@page.data["css_files"].push(url)
|
106
114
|
end
|
107
115
|
|
108
116
|
def fetch_config
|
@@ -134,11 +142,11 @@ module Hyde
|
|
134
142
|
end
|
135
143
|
|
136
144
|
def fetch_layout_name(obj_with_data, default = nil)
|
137
|
-
obj_with_data.data.fetch(
|
145
|
+
obj_with_data.data.fetch("layout", default)
|
138
146
|
end
|
139
147
|
|
140
148
|
def fetch_css(obj_with_data, default = [])
|
141
|
-
obj_with_data.data.fetch(
|
149
|
+
[obj_with_data.data.fetch("css", []).reverse]
|
142
150
|
end
|
143
151
|
|
144
152
|
def fetch_layout(layout_name, default = nil)
|
@@ -147,7 +155,7 @@ module Hyde
|
|
147
155
|
|
148
156
|
def parent_layout_css(layout, css)
|
149
157
|
if layout.nil?
|
150
|
-
return css
|
158
|
+
return css
|
151
159
|
end
|
152
160
|
|
153
161
|
layout_name = fetch_layout_name(layout)
|