hyde-page-css 0.5.1 → 0.7.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hyde-page-css.rb +31 -21
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d481d06fb66fb641d90c10c5ecaab7c16db6b9adcfc49c762ea582350a43f47
4
- data.tar.gz: aa01b38b8da692ad1b2f06ba35bd55074b842ec33fc00e2290cfbf08a03ca79f
3
+ metadata.gz: 470018e2aede9ba46a35ad49efd9b9dbeff4c280d74efc0f6e971706ed035a8f
4
+ data.tar.gz: e1349c35ab84347d34baa52b4d67609d1beff5dc6b6d6677a506be32b0bb9448
5
5
  SHA512:
6
- metadata.gz: dd9f98cdb269afe98b850941faf9ae68e0571fdbc87cfcb3c600e51e56ad5e16ff24673271c1f4215983dda69051a1247693e9f3a7532525c46b82da224fcc18
7
- data.tar.gz: 8480df5fa8f8a1109498ac4aa0c4e9ab632302f10c7e42d3d6fd0b140dbcdbcbe39795f06532fd6e1d2c6116a04cf5b9af297143a258ad8bd7cacdd9dc565a93
6
+ metadata.gz: a9969c00d880d243958253f7725737c5013bd4010147194808fa52d2c3e1b18cf7557a8055af01907f98b12fd50f52478095a21a91da61d2f6d7687b4886549e
7
+ data.tar.gz: 83e8c2c2437f607c468b03204edc2de65e4159fef23472d6f2b2ef91a70a1de1481687ee1fb55aa8a451e9d04c94b3d457b7945232d57f90a3011d14a4a76b7d
data/lib/hyde-page-css.rb CHANGED
@@ -12,7 +12,7 @@ end
12
12
  module Hyde
13
13
  module Page
14
14
  class Css
15
- VERSION = "0.5.1"
15
+ VERSION = "0.7.0"
16
16
  end
17
17
 
18
18
  class GeneratedCssFile < Jekyll::StaticFile
@@ -31,7 +31,6 @@ module Hyde
31
31
 
32
32
  def write(dest)
33
33
  dest_path = destination(dest)
34
- return false if File.exist?(dest_path)
35
34
 
36
35
  FileUtils.mkdir_p(File.dirname(dest_path))
37
36
  FileUtils.rm(dest_path) if File.exist?(dest_path)
@@ -51,20 +50,25 @@ module Hyde
51
50
  "minify" => true,
52
51
  "enable" => true,
53
52
  "keep_files" => true,
54
- "dev_mode" => false
53
+ "livereload" => false,
54
+ "automatic_inline_threshold" => 4096
55
55
  }
56
56
 
57
57
  def initialize(page)
58
58
  @page = page
59
59
  @site = page.site
60
60
  @config = fetch_config
61
- @site.data["_hyde_pages_cache"] ||= {}
61
+ @site.data["_hyde_pages_css_cache"] ||= Jekyll::Cache.new("hyde_pages_css")
62
62
 
63
- if keep_files? && !dev_mode?
63
+ if keep_files?
64
64
  @site.config.fetch("keep_files").push(destination)
65
65
  end
66
66
  end
67
67
 
68
+ def cache
69
+ @site.data["_hyde_pages_css_cache"]
70
+ end
71
+
68
72
  def run
69
73
  css = fetch_css(@page)
70
74
  layout = fetch_layout(fetch_layout_name(@page))
@@ -76,9 +80,8 @@ module Hyde
76
80
  next if group.empty?
77
81
 
78
82
  lookup_name = names_to_key(group)
79
- cache_entry = @site.data["_hyde_pages_cache"].fetch(lookup_name, nil)
80
83
 
81
- if cache_entry.nil?
84
+ cache_entry = cache.getset(lookup_name) do
82
85
  data = concatenate_files(group)
83
86
  break if data == ""
84
87
 
@@ -95,12 +98,10 @@ module Hyde
95
98
  @site.static_files << generated_file
96
99
  end
97
100
 
98
- # add to cache
99
- cache_entry = {
101
+ {
100
102
  url: generated_file.url,
101
103
  data: data
102
104
  }
103
- @site.data["_hyde_pages_cache"][lookup_name] = cache_entry
104
105
  end
105
106
 
106
107
  # assign to page.data.css_files for liquid output
@@ -117,6 +118,17 @@ module Hyde
117
118
  def add_to_urls(url, data)
118
119
  @page.data["css_files"] ||= []
119
120
  @page.data["css_files"].push({ "path" => url, "content" => data })
121
+
122
+ if (livereload?)
123
+ @page.data["automatic_styles"] ||= []
124
+ @page.data["automatic_styles"].push("<link rel=\"stylesheet\" href=\"/#{url}\">")
125
+ elsif data.size > @config.fetch("automatic_inline_threshold")
126
+ @page.data["automatic_styles"] ||= []
127
+ @page.data["automatic_styles"].push("<link rel=\"stylesheet\" href=\"/#{url}\">")
128
+ else
129
+ @page.data["automatic_styles"] ||= []
130
+ @page.data["automatic_styles"].push("<style>#{data}</style>")
131
+ end
120
132
  end
121
133
 
122
134
  def fetch_config
@@ -127,8 +139,8 @@ module Hyde
127
139
  @config.fetch("keep_files") == true
128
140
  end
129
141
 
130
- def dev_mode?
131
- @config.fetch("dev_mode") == true
142
+ def livereload?
143
+ @config.fetch("livereload") == true
132
144
  end
133
145
 
134
146
  def minify?
@@ -189,12 +201,10 @@ module Hyde
189
201
  end
190
202
 
191
203
  def style
192
- if dev_mode?
193
- "expanded"
194
- elsif !minify?
195
- "expanded"
196
- else
204
+ if minify?
197
205
  "compressed"
206
+ else
207
+ "expanded"
198
208
  end
199
209
  end
200
210
 
@@ -213,11 +223,11 @@ module Hyde
213
223
  def generate_file_name(files, data, prefix: nil)
214
224
  file_names = [prefix]
215
225
 
216
- if dev_mode?
217
- files.each { |file| file_names.push(file.gsub(".css", "")) }
218
- end
226
+ files.each { |file| file_names.push(file.gsub(".css", "")) }
219
227
 
220
- file_names.push(Digest::MD5.hexdigest(data)[0, 6])
228
+ unless livereload?
229
+ file_names.push(Digest::MD5.hexdigest(data)[0, 6])
230
+ end
221
231
 
222
232
  file_names.compact.join("-") + ".css"
223
233
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyde-page-css
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Daynes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-25 00:00:00.000000000 Z
11
+ date: 2024-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll