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:  
     | 
| 
       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,25 +96,34 @@ module Hyde 
     | 
|
| 
       115 
96 
     | 
    
         
             
                  end
         
     | 
| 
       116 
97 
     | 
    
         | 
| 
       117 
98 
     | 
    
         
             
                  def minify(data)
         
     | 
| 
       118 
     | 
    
         
            -
                     
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
      
 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 = { 
     | 
| 
      
 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( 
     | 
| 
      
 114 
     | 
    
         
            +
                    Hyde::Page::GeneratedPageCssFile.new(@site, config("asset_path"), file_name)
         
     | 
| 
       129 
115 
     | 
    
         
             
                  end
         
     | 
| 
       130 
116 
     | 
    
         | 
| 
       131 
     | 
    
         
            -
                  def generate_file_name(files, data)
         
     | 
| 
       132 
     | 
    
         
            -
                     
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
                     
     | 
| 
       135 
     | 
    
         
            -
                       
     | 
| 
      
 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 
     | 
| 
      
 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
         
     |