hyde-page-css 0.2.3 → 0.3.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47a306a1505adce319c2e7e2c872029f0ae792feab9d164163a74b5933166267
|
4
|
+
data.tar.gz: 84b56ab510348dd9b2c0401e9cb3f0d6c332cec97f5d4ca5aa78222412b7c5f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c3da3407955bd07c45d39f2e1b0c033a2e25b6812d4e7f95ae590e45cb4baeb7d5447720355b1cc230ed078542b3990e4a5dbe45f2ff5af1afe564543e5b812
|
7
|
+
data.tar.gz: 80ceca52abdde3699e55e025cdc39350ed0f7ce84aa96417614ac512b659857709ddf5f315b5f0d429712425250175646b47af851fa70cd0871811b4e61d0e06
|
@@ -1,31 +1,12 @@
|
|
1
1
|
require 'jekyll'
|
2
|
-
require_relative
|
3
|
-
|
4
|
-
module Jekyll
|
5
|
-
class Renderer
|
6
|
-
def render_layout(output, layout, info)
|
7
|
-
Hyde::Page::Css.new(layout, info).generate
|
8
|
-
|
9
|
-
# TODO Would be nice to call super here instead of cloned logic from Jekyll internals
|
10
|
-
payload["content"] = output
|
11
|
-
payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {})
|
12
|
-
|
13
|
-
render_liquid(
|
14
|
-
layout.content,
|
15
|
-
payload,
|
16
|
-
info,
|
17
|
-
layout.path
|
18
|
-
)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
2
|
+
require_relative "generated_page_css_file"
|
22
3
|
|
23
4
|
module Hyde
|
24
5
|
module Page
|
25
6
|
class Css
|
26
7
|
@@config = {
|
27
|
-
"asset_path" =>
|
28
|
-
"file_output_path" =>
|
8
|
+
"asset_path" => "assets/css",
|
9
|
+
"file_output_path" => "assets/css",
|
29
10
|
"css_minify" => true,
|
30
11
|
"enable" => true,
|
31
12
|
"keep_files" => true,
|
@@ -36,24 +17,24 @@ module Hyde
|
|
36
17
|
@site = info[:registers][:site]
|
37
18
|
@page = info[:registers][:page]
|
38
19
|
@data = layout.data
|
39
|
-
@config = @@config.merge(@site.config.dig(
|
20
|
+
@config = @@config.merge(@site.config.dig("hyde_page_css") || {})
|
40
21
|
|
41
|
-
@qualified_asset_path = File.join(*[@site.source, @config[
|
22
|
+
@qualified_asset_path = File.join(*[@site.source, @config["asset_path"]].compact)
|
42
23
|
|
43
|
-
if config(
|
44
|
-
@site.config[
|
24
|
+
if config("keep_files") == true && config("dev_mode") == false
|
25
|
+
@site.config["keep_files"].push(config("file_output_path"))
|
45
26
|
end
|
46
27
|
|
47
|
-
if @page["css"].nil?
|
48
|
-
|
28
|
+
@page["css"] = if @page["css"].nil?
|
29
|
+
[]
|
49
30
|
else
|
50
|
-
|
31
|
+
[@page["css"]]
|
51
32
|
end
|
52
33
|
end
|
53
34
|
|
54
35
|
def generate
|
55
|
-
return unless config(
|
56
|
-
@page["css"].unshift(@data[
|
36
|
+
return unless config("enable") == true
|
37
|
+
@page["css"].unshift(@data["css"])
|
57
38
|
|
58
39
|
file_groups = flatten_group(@page["css"])
|
59
40
|
|
@@ -80,13 +61,13 @@ module Hyde
|
|
80
61
|
end
|
81
62
|
|
82
63
|
# the recursive nature of this will sometimes have duplicate css files
|
83
|
-
@page[
|
64
|
+
@page["css_files"] = css_files.uniq
|
84
65
|
end
|
85
66
|
|
86
|
-
|
67
|
+
private
|
87
68
|
|
88
|
-
def config(*
|
89
|
-
@config.dig(*
|
69
|
+
def config(*)
|
70
|
+
@config.dig(*)
|
90
71
|
end
|
91
72
|
|
92
73
|
def flatten_group(arr, acc = [])
|
@@ -96,18 +77,18 @@ module Hyde
|
|
96
77
|
acc += flatten_group(arr.last)
|
97
78
|
end
|
98
79
|
|
99
|
-
def concatenate_files(files, data =
|
80
|
+
def concatenate_files(files, data = "")
|
100
81
|
for file in files do
|
101
82
|
# tmp page required to handle anything with frontmatter/yaml header
|
102
|
-
tmp_page = Jekyll::PageWithoutAFile.new(@site, nil, config(
|
83
|
+
tmp_page = Jekyll::PageWithoutAFile.new(@site, nil, config("asset_path"), file)
|
103
84
|
path = File.join([@qualified_asset_path, file])
|
104
85
|
|
105
86
|
begin
|
106
87
|
file_contents = File.read(path)
|
107
88
|
tmp_page.content = file_contents
|
108
|
-
data << Jekyll::Renderer.new(@site, tmp_page).run
|
89
|
+
data << Jekyll::Renderer.new(@site, tmp_page).run
|
109
90
|
rescue
|
110
|
-
Jekyll.logger.warn(
|
91
|
+
Jekyll.logger.warn("Page CSS Warning:", "Unable to find #{path}")
|
111
92
|
end
|
112
93
|
end
|
113
94
|
|
@@ -115,34 +96,34 @@ module Hyde
|
|
115
96
|
end
|
116
97
|
|
117
98
|
def minify(data)
|
118
|
-
if config(
|
119
|
-
|
120
|
-
elsif config(
|
121
|
-
|
99
|
+
style = if config("dev_mode") == true
|
100
|
+
"expanded"
|
101
|
+
elsif config("css_minify") == false
|
102
|
+
"expanded"
|
122
103
|
else
|
123
|
-
|
104
|
+
"compressed"
|
124
105
|
end
|
125
106
|
|
126
|
-
converter_config = {
|
107
|
+
converter_config = {"sass" => {"style" => style}}
|
127
108
|
Jekyll::Converters::Scss.new(converter_config).convert(data)
|
128
109
|
end
|
129
110
|
|
130
111
|
def generate_file(files, data)
|
131
112
|
file_name = generate_file_name(files, data)
|
132
113
|
|
133
|
-
Hyde::Page::GeneratedPageCssFile.new(@site, config(
|
114
|
+
Hyde::Page::GeneratedPageCssFile.new(@site, config("asset_path"), file_name)
|
134
115
|
end
|
135
116
|
|
136
117
|
def generate_file_name(files, data, prefix: nil)
|
137
118
|
file_names = [prefix]
|
138
119
|
|
139
|
-
if config(
|
140
|
-
files.each { |file| file_names.push(file.gsub(
|
120
|
+
if config("dev_mode")
|
121
|
+
files.each { |file| file_names.push(file.gsub(".css", "")) }
|
141
122
|
end
|
142
123
|
|
143
|
-
file_names.push(Digest::MD5.hexdigest(data)[0,6])
|
124
|
+
file_names.push(Digest::MD5.hexdigest(data)[0, 6])
|
144
125
|
|
145
|
-
file_names.compact.join(
|
126
|
+
file_names.compact.join("-") + ".css"
|
146
127
|
end
|
147
128
|
end
|
148
129
|
end
|
@@ -9,12 +9,12 @@ module Hyde
|
|
9
9
|
|
10
10
|
def initialize(site, dir, name)
|
11
11
|
@site = site
|
12
|
-
@dir
|
12
|
+
@dir = dir
|
13
13
|
@name = name
|
14
14
|
@relative_path = File.join(*[@dir, @name].compact)
|
15
15
|
@extname = File.extname(@name)
|
16
16
|
@type = @collection&.label&.to_sym
|
17
|
-
@generator =
|
17
|
+
@generator = "hyde-page-css"
|
18
18
|
end
|
19
19
|
|
20
20
|
def write(dest)
|
@@ -24,7 +24,7 @@ module Hyde
|
|
24
24
|
FileUtils.mkdir_p(File.dirname(dest_path))
|
25
25
|
FileUtils.rm(dest_path) if File.exist?(dest_path)
|
26
26
|
|
27
|
-
File.open(dest_path,
|
27
|
+
File.open(dest_path, "w") do |output_file|
|
28
28
|
output_file << file_contents
|
29
29
|
end
|
30
30
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class Renderer
|
3
|
+
def render_layout(output, layout, info)
|
4
|
+
Hyde::Page::Css.new(layout, info).generate
|
5
|
+
|
6
|
+
# TODO Would be nice to call super here instead of cloned logic from Jekyll internals
|
7
|
+
payload["content"] = output
|
8
|
+
payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {})
|
9
|
+
|
10
|
+
render_liquid(
|
11
|
+
layout.content,
|
12
|
+
payload,
|
13
|
+
info,
|
14
|
+
layout.path
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
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.
|
4
|
+
version: 0.3.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: 2023-12-
|
11
|
+
date: 2023-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -37,9 +37,10 @@ executables: []
|
|
37
37
|
extensions: []
|
38
38
|
extra_rdoc_files: []
|
39
39
|
files:
|
40
|
-
- lib/
|
41
|
-
- lib/
|
42
|
-
- lib/
|
40
|
+
- lib/hyde-page-css.rb
|
41
|
+
- lib/hyde/page/css.rb
|
42
|
+
- lib/hyde/page/generated_page_css_file.rb
|
43
|
+
- lib/hyde/renderer.rb
|
43
44
|
homepage: https://github.com/gregdaynes/hyde-page-css
|
44
45
|
licenses:
|
45
46
|
- MIT
|
@@ -59,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '0'
|
61
62
|
requirements: []
|
62
|
-
rubygems_version: 3.4.
|
63
|
+
rubygems_version: 3.4.10
|
63
64
|
signing_key:
|
64
65
|
specification_version: 4
|
65
66
|
summary: Plugin for jekyll to enable per page css files
|