jekyll-responsive-image 1.5.5 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6997784f689936e81a50d386893ff4bab36054dcaa2811b3be30aecf5d02c6c8
|
4
|
+
data.tar.gz: 0133f99007cd590aed90e238feecdc822e94003168455285c1e4ea65340833c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dab196e76bf72c37681e5ba3d0e87fb732c90fae7f58dc1e4db03a2bac0644345797412da9f854929a2d53b8881759e0b5cf8520a9d1c57bcaa34a2c2c6db4fe
|
7
|
+
data.tar.gz: f45b4fd482e8c75a728a3112ee4b0bbf3dc78f45c23f57bf9caeba2e830ae6d7ecba32a8634a3755545e6087a98555d01415c0b80f6f319473e2d9dc29a21a20
|
@@ -8,12 +8,11 @@ module Jekyll
|
|
8
8
|
|
9
9
|
Jekyll.logger.warn "Invalid image path specified: #{image_path.inspect}" unless File.file?(absolute_image_path)
|
10
10
|
|
11
|
-
resize_handler = ResizeHandler.new
|
12
|
-
img = Magick::Image::read(absolute_image_path).first
|
11
|
+
resize_handler = ResizeHandler.new(absolute_image_path, config)
|
13
12
|
|
14
13
|
{
|
15
|
-
original: image_hash(config, image_path,
|
16
|
-
resized: resize_handler.resize_image
|
14
|
+
original: image_hash(config, image_path, resize_handler.original_image.columns, resize_handler.original_image.rows),
|
15
|
+
resized: resize_handler.resize_image,
|
17
16
|
}
|
18
17
|
end
|
19
18
|
|
@@ -25,7 +25,11 @@ module Jekyll
|
|
25
25
|
partial = File.read(image_template)
|
26
26
|
template = Liquid::Template.parse(partial)
|
27
27
|
|
28
|
-
|
28
|
+
info = {
|
29
|
+
registers: { site: @site }
|
30
|
+
}
|
31
|
+
|
32
|
+
result = template.render!(@attributes.merge(@site.site_payload), info)
|
29
33
|
|
30
34
|
RenderCache.set(cache_key, result)
|
31
35
|
end
|
@@ -3,26 +3,39 @@ module Jekyll
|
|
3
3
|
class ResizeHandler
|
4
4
|
include ResponsiveImage::Utils
|
5
5
|
|
6
|
-
|
7
|
-
img.auto_orient! if config['auto_rotate']
|
6
|
+
attr_reader :original_image
|
8
7
|
|
8
|
+
def initialize(original_image_absolute_path, config)
|
9
|
+
@config = config
|
10
|
+
|
11
|
+
@original_image_absolute_path = original_image_absolute_path
|
12
|
+
|
13
|
+
if @config['auto_rotate']
|
14
|
+
load_full_image
|
15
|
+
@original_image.auto_orient!
|
16
|
+
else
|
17
|
+
load_image_properties_only
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def resize_image
|
9
22
|
resized = []
|
10
23
|
|
11
|
-
config['sizes'].each do |size|
|
24
|
+
@config['sizes'].each do |size|
|
12
25
|
width = size['width']
|
13
|
-
ratio = width.to_f /
|
14
|
-
height = (
|
26
|
+
ratio = width.to_f / @original_image.columns.to_f
|
27
|
+
height = (@original_image.rows.to_f * ratio).round
|
15
28
|
|
16
|
-
next unless needs_resizing?(
|
29
|
+
next unless needs_resizing?(width)
|
17
30
|
|
18
|
-
image_path =
|
19
|
-
filepath = format_output_path(config['output_path_format'], config, image_path, width, height)
|
20
|
-
resized.push(image_hash(config, filepath, width, height))
|
31
|
+
image_path = @original_image.filename.force_encoding(Encoding::UTF_8)
|
32
|
+
filepath = format_output_path(@config['output_path_format'], @config, image_path, width, height)
|
33
|
+
resized.push(image_hash(@config, filepath, width, height))
|
21
34
|
|
22
|
-
site_source_filepath = File.expand_path(filepath, config[:site_source])
|
23
|
-
site_dest_filepath = File.expand_path(filepath, config[:site_dest])
|
35
|
+
site_source_filepath = File.expand_path(filepath, @config[:site_source])
|
36
|
+
site_dest_filepath = File.expand_path(filepath, @config[:site_dest])
|
24
37
|
|
25
|
-
if config['save_to_source']
|
38
|
+
if @config['save_to_source']
|
26
39
|
target_filepath = site_source_filepath
|
27
40
|
else
|
28
41
|
target_filepath = site_dest_filepath
|
@@ -36,16 +49,22 @@ module Jekyll
|
|
36
49
|
|
37
50
|
Jekyll.logger.info "Generating #{target_filepath}"
|
38
51
|
|
39
|
-
|
40
|
-
|
52
|
+
load_full_image unless @original_image_pixels_loaded
|
53
|
+
|
54
|
+
if @config['strip']
|
55
|
+
@original_image.strip!
|
41
56
|
end
|
42
|
-
|
57
|
+
|
58
|
+
i = @original_image.scale(ratio)
|
59
|
+
|
60
|
+
quality = size['quality'] || @config['default_quality']
|
61
|
+
|
43
62
|
i.write(target_filepath) do |f|
|
44
63
|
f.interlace = i.interlace
|
45
|
-
f.quality =
|
64
|
+
f.quality = quality
|
46
65
|
end
|
47
66
|
|
48
|
-
if config['save_to_source']
|
67
|
+
if @config['save_to_source']
|
49
68
|
# Ensure the generated file is copied to the _site directory
|
50
69
|
Jekyll.logger.info "Copying resized image to #{site_dest_filepath}"
|
51
70
|
FileUtils.copy_file(site_source_filepath, site_dest_filepath)
|
@@ -54,7 +73,7 @@ module Jekyll
|
|
54
73
|
i.destroy!
|
55
74
|
end
|
56
75
|
|
57
|
-
|
76
|
+
@original_image.destroy!
|
58
77
|
|
59
78
|
resized
|
60
79
|
end
|
@@ -65,8 +84,18 @@ module Jekyll
|
|
65
84
|
Pathname.new(format % params).cleanpath.to_s
|
66
85
|
end
|
67
86
|
|
68
|
-
def needs_resizing?(
|
69
|
-
|
87
|
+
def needs_resizing?(width)
|
88
|
+
@original_image.columns > width
|
89
|
+
end
|
90
|
+
|
91
|
+
def load_full_image
|
92
|
+
@original_image = Magick::Image::read(@original_image_absolute_path).first
|
93
|
+
@original_image_pixels_loaded = true
|
94
|
+
end
|
95
|
+
|
96
|
+
def load_image_properties_only
|
97
|
+
@original_image = Magick::Image::ping(@original_image_absolute_path).first
|
98
|
+
@original_image_pixels_loaded = false
|
70
99
|
end
|
71
100
|
|
72
101
|
def ensure_output_dir_exists!(path)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-responsive-image
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Wynn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|