jekyll-images 0.4.5 → 0.4.7

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: e619166d852ad3801e9aad3b4db7598d0ffa0f1a4df17155e8c728ee49fefb9a
4
- data.tar.gz: 858e2a2e338219a2d9a4fd14acefb52d76c9216687eb77e84700511beb4afdd9
3
+ metadata.gz: 2952761bff8f6b73605856b37cec55d29815dffa4e27d23f9ac8d5a76e0f0e8b
4
+ data.tar.gz: 11cb41efcde66b9f99d02b34b481022b31c3a3a0a3331b1a40611534d687c4b0
5
5
  SHA512:
6
- metadata.gz: b6e1ea089faa4d3caeab19bfaee7bf9599599061e4f2061a16656ae0b229cf154c0a6cb6f23b34b9b3674008c7c1da064bda092e21953db867952f2a36749eb1
7
- data.tar.gz: 57fc3e27b9412b6073de6a2f64933411d438997ec60cff6c381cb164b690c6844e21a8589ed264867a152ca82aab605ddc3a5218c0146ff83486f182fd394499
6
+ metadata.gz: 39dc59ad60dd74d50ca32285e9745f06472080398e34b162902192fbf3cde37daa69d16d468ca1920b758259ec16c41a785fd75444e4331b7d15b625b1dc833b
7
+ data.tar.gz: b0a812f12d2d3c47d5a44579899ff7e4bf82ad5a9755e3c109619ef29b4eb327ad7725fbbcafec114739d766bdd4dd1ddd10e348984d747bc0161841e05428e5
checksums.yaml.gz.sig CHANGED
Binary file
@@ -4,39 +4,52 @@ module Jekyll
4
4
  module Filters
5
5
  # Liquid filter for use in templates
6
6
  module Dzsave
7
+ def self.jekyll_site=(site)
8
+ @@jekyll_site = site
9
+ end
10
+
11
+ def jekyll_site
12
+ @@jekyll_site
13
+ end
14
+
7
15
  # Generates an image pyramid
8
16
  #
9
17
  # @see {https://www.libvips.org/API/current/Making-image-pyramids.md.html}
10
18
  def dzsave(input, layout = 'google', tile_size = 256)
11
19
  return input unless input
12
20
 
13
- site = @context.registers[:site]
14
- path = site.in_source_dir(input)
21
+ path = jekyll_site.in_source_dir(input)
15
22
 
16
23
  unless ::File.exist?(path)
17
- Jekyll.logger.warn "File doesn't exist #{input}"
24
+ Jekyll.logger.warn 'Dzsave:', "#{input} doesn't exist"
25
+ return input
26
+ end
27
+
28
+ image = Vips::Image.new_from_file(path, access: :sequential)
29
+
30
+ if [image.width, image.height].min < tile_size
31
+ Jekyll.logger.warn 'Dzsave:', "#{input} is smaller than tile size"
18
32
  return input
19
33
  end
20
34
 
21
35
  dir = ::File.dirname(input)
22
36
  previous_tiles = []
23
37
 
24
- Dir.chdir(site.source) do
38
+ Dir.chdir(jekyll_site.source) do
25
39
  previous_tiles = Dir.glob(::File.join(dir, '*', '**', '*.jpg'))
26
40
  end
27
41
 
28
- image = Vips::Image.new_from_file(path, access: :sequential)
29
42
  image.dzsave(dir, layout: layout, tile_size: tile_size)
30
43
 
31
- Dir.chdir(site.source) do
44
+ Dir.chdir(jekyll_site.source) do
32
45
  (Dir.glob(::File.join(dir, '*', '**', '*.jpg')) - previous_tiles).each do |tile|
33
- site.static_files << Jekyll::StaticFile.new(site, site.source, ::File.dirname(tile), ::File.basename(tile))
46
+ jekyll_site.static_files << Jekyll::StaticFile.new(jekyll_site, jekyll_site.source, ::File.dirname(tile), ::File.basename(tile))
34
47
  end
35
48
  end
36
49
 
37
50
  "#{dir}/{z}/{y}/{x}.jpg"
38
51
  rescue Vips::Error => e
39
- Jekyll.logger.warn "Failed to process #{input}: #{e.message}"
52
+ Jekyll.logger.warn 'Dzsave:', "Failed to process #{input}: #{e.message}"
40
53
  input
41
54
  end
42
55
  end
@@ -4,18 +4,27 @@ module Jekyll
4
4
  module Filters
5
5
  # Obtain image height
6
6
  module Height
7
+ def self.jekyll_site=(site)
8
+ @@jekyll_site = site
9
+ end
10
+
11
+ def jekyll_site
12
+ @@jekyll_site
13
+ end
14
+
15
+
7
16
  def height(input)
8
17
  return unless input
9
- path = @context.registers[:site].in_source_dir input
18
+ path = jekyll_site.in_source_dir input
10
19
 
11
20
  unless ::File.exist? path
12
- Jekyll.logger.warn "File doesn't exist #{input}"
21
+ Jekyll.logger.warn 'Height:', "#{input} doesn't exist"
13
22
  return input
14
23
  end
15
24
 
16
25
  Jekyll::Images::Cache.cached_image(path).height
17
26
  rescue Vips::Error => e
18
- Jekyll.logger.warn "Failed to process #{input}: #{e.message}"
27
+ Jekyll.logger.warn 'Height:', "Failed to process #{input}: #{e.message}"
19
28
  nil
20
29
  end
21
30
  end
@@ -4,6 +4,14 @@ module Jekyll
4
4
  module Filters
5
5
  # Maximum zoom level
6
6
  module MaxZoomLevel
7
+ def self.jekyll_site=(site)
8
+ @@jekyll_site = site
9
+ end
10
+
11
+ def jekyll_site
12
+ @@jekyll_site
13
+ end
14
+
7
15
  # Finds the maximum zoom level for an image
8
16
  #
9
17
  # @param :input [String]
@@ -11,7 +19,7 @@ module Jekyll
11
19
  def max_zoom_level(input)
12
20
  return input unless input
13
21
 
14
- path = ::File.dirname(@context.registers[:site].in_source_dir(input))
22
+ path = ::File.dirname(jekyll_site.in_source_dir(input))
15
23
 
16
24
  unless ::File.exist? path
17
25
  Jekyll.logger.warn 'Max zoom level:', "File doesn't exist #{input}"
@@ -4,16 +4,24 @@ module Jekyll
4
4
  module Filters
5
5
  # Liquid filter for use in templates
6
6
  module Thumbnail
7
+ def self.jekyll_site=(site)
8
+ @@jekyll_site = site
9
+ end
10
+
11
+ def jekyll_site
12
+ @@jekyll_site
13
+ end
14
+
7
15
  # Generates a thumbnail and returns its alternate destination
8
16
  def thumbnail(input, width = nil, height = nil, crop = nil, auto_rotate = nil)
9
17
  return input unless input
10
18
  return input if input.downcase.end_with? '.gif'
11
19
  return input unless Jekyll.env == 'production'
12
20
 
13
- path = @context.registers[:site].in_source_dir input
21
+ path = jekyll_site.in_source_dir input
14
22
 
15
23
  unless ::File.exist? path
16
- Jekyll.logger.warn "File doesn't exist #{input}"
24
+ Jekyll.logger.warn 'Thumbnail:', "#{input} doesn't exist"
17
25
  return input
18
26
  end
19
27
 
@@ -27,7 +35,7 @@ module Jekyll
27
35
 
28
36
  thumb.url
29
37
  rescue Vips::Error => e
30
- Jekyll.logger.warn "Failed to process #{input}: #{e.message}"
38
+ Jekyll.logger.warn 'Thumbnail:', "Failed to process #{input}: #{e.message}"
31
39
  input
32
40
  end
33
41
  end
@@ -4,18 +4,26 @@ module Jekyll
4
4
  module Filters
5
5
  # Obtain image width
6
6
  module Width
7
+ def self.jekyll_site=(site)
8
+ @@jekyll_site = site
9
+ end
10
+
11
+ def jekyll_site
12
+ @@jekyll_site
13
+ end
14
+
7
15
  def width(input)
8
16
  return unless input
9
- path = @context.registers[:site].in_source_dir input
17
+ path = jekyll_site.in_source_dir input
10
18
 
11
19
  unless ::File.exist? path
12
- Jekyll.logger.warn "File doesn't exist #{input}"
20
+ Jekyll.logger.warn 'Width:', "#{input} doesn't exist"
13
21
  return input
14
22
  end
15
23
 
16
24
  Jekyll::Images::Cache.cached_image(path).width
17
25
  rescue Vips::Error => e
18
- Jekyll.logger.warn "Failed to process #{input}: #{e.message}"
26
+ Jekyll.logger.warn 'Width:', "Failed to process #{input}: #{e.message}"
19
27
  nil
20
28
  end
21
29
  end
@@ -87,10 +87,10 @@ module Jekyll
87
87
  return unless write?
88
88
 
89
89
  if thumbnail?
90
- Jekyll.logger.info "Thumbnailing #{filename} => #{dest}"
90
+ Jekyll.logger.info 'Thumbnail:', "#{filename} => #{dest}"
91
91
  thumbnail.write_to_file(dest)
92
92
  else
93
- Jekyll.logger.info "Copying #{filename} => #{dest}"
93
+ Jekyll.logger.info 'Copying:', "#{filename} => #{dest}"
94
94
  FileUtils.cp(filename, dest)
95
95
  end
96
96
 
@@ -110,7 +110,7 @@ module Jekyll
110
110
 
111
111
  pct = ((after.to_f / before) * -100 + 100).round(2)
112
112
 
113
- Jekyll.logger.info "Reduced #{dest} from #{before} to #{after} bytes (%#{pct})"
113
+ Jekyll.logger.info 'Optimization:', "Reduced #{dest} from #{before} to #{after} bytes (%#{pct})"
114
114
  end
115
115
 
116
116
  def relative_path
data/lib/jekyll-images.rb CHANGED
@@ -1,11 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'jekyll/images/cache'
4
-
5
- Jekyll::Hooks.register :site, :after_reset do |site|
6
- Jekyll::Images::Cache.site = site
7
- end
8
-
9
4
  require_relative 'jekyll/images/image'
10
5
  require_relative 'jekyll/images/thumbnail'
11
6
  require_relative 'jekyll/filters/thumbnail'
@@ -15,3 +10,13 @@ require_relative 'jekyll/filters/dzsave'
15
10
  require_relative 'jekyll/filters/max_zoom_level'
16
11
  require_relative 'jekyll/images/oxipng'
17
12
  require_relative 'jekyll/images/jpeg_optim'
13
+
14
+ Jekyll::Hooks.register :site, :after_reset do |site|
15
+ Jekyll::Images::Cache.site =
16
+ Jekyll::Filters::Height.jekyll_site =
17
+ Jekyll::Filters::Thumbnail.jekyll_site =
18
+ Jekyll::Filters::Width.jekyll_site =
19
+ Jekyll::Filters::MaxZoomLevel.jekyll_site =
20
+ Jekyll::Filters::Dzsave.jekyll_site =
21
+ site
22
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-images
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - f
@@ -35,7 +35,7 @@ cert_chain:
35
35
  cpurTQHNJfL/ah+9dYbgDXdG5HAAjRMAsWSvERw95YdN9XzQZCdUk5wUs+A6cNtO
36
36
  AZZUMTVYNx8JqUeemxlXBRjsD/s=
37
37
  -----END CERTIFICATE-----
38
- date: 2025-03-19 00:00:00.000000000 Z
38
+ date: 2025-06-24 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: jekyll
metadata.gz.sig CHANGED
Binary file