hyde-page-css 0.2.2 → 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: fc33815d451e8177e2b8be5e82eaa13a76b405e2b57c0bb5df63ed568c2a8e89
4
- data.tar.gz: 2e3dde94fe8e4ea48e2868d3c2465fbb81e881d7be52e44ce1e1624ae53836b7
3
+ metadata.gz: 47a306a1505adce319c2e7e2c872029f0ae792feab9d164163a74b5933166267
4
+ data.tar.gz: 84b56ab510348dd9b2c0401e9cb3f0d6c332cec97f5d4ca5aa78222412b7c5f2
5
5
  SHA512:
6
- metadata.gz: b20f69f05bd932e365ebeec48e8d5b817c3a29e458ebe03bd1cba596cd38466b832a4f286c3bf03ef80e2675bb3ba1d7d336af9ad447be8c5c70b84b8d2b2d8d
7
- data.tar.gz: 607fe14b78a338540bdf729881e9956b6357b1da77b62ea996bbf6448d89959529415b4dd6b6878474a3eb0bc3ee372966b77c7adaa3bf8aa8591623d7a2d9a3
6
+ metadata.gz: 4c3da3407955bd07c45d39f2e1b0c033a2e25b6812d4e7f95ae590e45cb4baeb7d5447720355b1cc230ed078542b3990e4a5dbe45f2ff5af1afe564543e5b812
7
+ data.tar.gz: 80ceca52abdde3699e55e025cdc39350ed0f7ce84aa96417614ac512b659857709ddf5f315b5f0d429712425250175646b47af851fa70cd0871811b4e61d0e06
@@ -1,31 +1,12 @@
1
1
  require 'jekyll'
2
- require_relative 'generated_page_css_file.rb'
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" => 'assets/css',
28
- "file_output_path" => 'assets/css',
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('hyde_page_css') || {})
20
+ @config = @@config.merge(@site.config.dig("hyde_page_css") || {})
40
21
 
41
- @qualified_asset_path = File.join(*[@site.source, @config['asset_path']].compact)
22
+ @qualified_asset_path = File.join(*[@site.source, @config["asset_path"]].compact)
42
23
 
43
- if config('keep_files') == true
44
- @site.config['keep_files'].push(config('file_output_path'))
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
- @page["css"] = []
28
+ @page["css"] = if @page["css"].nil?
29
+ []
49
30
  else
50
- @page["css"] = [@page["css"]]
31
+ [@page["css"]]
51
32
  end
52
33
  end
53
34
 
54
35
  def generate
55
- return unless config('enable') == true
56
- @page["css"].unshift(@data['css'])
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['css_files'] = css_files.uniq
64
+ @page["css_files"] = css_files.uniq
84
65
  end
85
66
 
86
- private
67
+ private
87
68
 
88
- def config(*keys)
89
- @config.dig(*keys)
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('asset_path'), file)
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('Page CSS Warning:', "Unable to find #{path}")
91
+ Jekyll.logger.warn("Page CSS Warning:", "Unable to find #{path}")
111
92
  end
112
93
  end
113
94
 
@@ -115,25 +96,34 @@ module Hyde
115
96
  end
116
97
 
117
98
  def minify(data)
118
- return data if config('minify') == false
119
- return data if config('dev_mode') == true
99
+ style = if config("dev_mode") == true
100
+ "expanded"
101
+ elsif config("css_minify") == false
102
+ "expanded"
103
+ else
104
+ "compressed"
105
+ end
120
106
 
121
- converter_config = { 'sass' => { 'style' => 'compressed' } }
107
+ converter_config = {"sass" => {"style" => style}}
122
108
  Jekyll::Converters::Scss.new(converter_config).convert(data)
123
109
  end
124
110
 
125
111
  def generate_file(files, data)
126
112
  file_name = generate_file_name(files, data)
127
113
 
128
- Hyde::Page::GeneratedPageCssFile.new(@site, config('asset_path'), file_name)
114
+ Hyde::Page::GeneratedPageCssFile.new(@site, config("asset_path"), file_name)
129
115
  end
130
116
 
131
- def generate_file_name(files, data)
132
- if config('dev_mode')
133
- file_name = files.map { |file| file.gsub('.css', '') }.join('-') + '.css'
134
- else
135
- file_name = Digest::MD5.hexdigest(data) + '.css'
117
+ def generate_file_name(files, data, prefix: nil)
118
+ file_names = [prefix]
119
+
120
+ if config("dev_mode")
121
+ files.each { |file| file_names.push(file.gsub(".css", "")) }
136
122
  end
123
+
124
+ file_names.push(Digest::MD5.hexdigest(data)[0, 6])
125
+
126
+ file_names.compact.join("-") + ".css"
137
127
  end
138
128
  end
139
129
  end
@@ -9,12 +9,12 @@ module Hyde
9
9
 
10
10
  def initialize(site, dir, name)
11
11
  @site = site
12
- @dir = 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 = 'hyde_page_css'
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, 'w') do |output_file|
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
@@ -0,0 +1,11 @@
1
+ module Hyde
2
+ module Page
3
+ class Css
4
+ VERSION = "0.3.0"
5
+ end
6
+ end
7
+ end
8
+
9
+ require_relative "hyde/renderer.rb"
10
+ require_relative "hyde/page/css.rb"
11
+ require_relative "hyde/page/generated_page_css_file.rb"
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.2.2
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-17 00:00:00.000000000 Z
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/hyde_page_css.rb
41
- - lib/hyde_page_css/generated_page_css_file.rb
42
- - lib/hyde_page_css/hyde_page_css.rb
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.22
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
data/lib/hyde_page_css.rb DELETED
@@ -1,10 +0,0 @@
1
- module Hyde
2
- module Page
3
- class Css
4
- VERSION = "0.2.2"
5
- end
6
- end
7
- end
8
-
9
- require_relative './hyde_page_css/hyde_page_css.rb'
10
-