jekyll-responsive_image 0.18.0 → 1.0.0.pre
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 +4 -4
- data/lib/jekyll/responsive_image/block.rb +8 -21
- data/lib/jekyll/responsive_image/common.rb +33 -6
- data/lib/jekyll/responsive_image/extra_image_generator.rb +4 -1
- data/lib/jekyll/responsive_image/image_processor.rb +1 -1
- data/lib/jekyll/responsive_image/resize_handler.rb +8 -6
- data/lib/jekyll/responsive_image/tag.rb +1 -22
- data/lib/jekyll/responsive_image/version.rb +1 -1
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 035cab45912f4a42f03cd84441d67ca8b7ceb470
|
4
|
+
data.tar.gz: c9bdbe1866f8d64087c6d3d5e93403365469c547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28a085761f120c5f0d9e667cc931d1f51bbacd99fa85a3b6184b2363bdcc564c47c1feafb1b079e8a85b1214d4967f14f92da7dcac7696438324b560544b31ea
|
7
|
+
data.tar.gz: 3f4bea2b3ffaad9f0783f309f1850fd655810ce062a2d5e5de4252dfbd5cbd310d4242c6a98bcf9174548349a47920f0177b32235767e8afcc8fa1c2c76ca00c
|
@@ -1,33 +1,20 @@
|
|
1
|
-
module Jekyll
|
2
|
-
class ResponsiveImage
|
3
|
-
class Block < Liquid::Block
|
4
|
-
include Jekyll::ResponsiveImage::Common
|
5
1
|
|
6
|
-
def render(context)
|
7
|
-
attributes = YAML.load(super)
|
8
2
|
|
9
|
-
cache_key = attributes.to_s
|
10
|
-
result = attributes['cache'] ? RenderCache.get(cache_key) : nil
|
11
3
|
|
12
|
-
if result.nil?
|
13
|
-
site = context.registers[:site]
|
14
|
-
config = make_config(site)
|
15
4
|
|
16
|
-
image_template = attributes['template'] || config['template']
|
17
5
|
|
18
|
-
image = ImageProcessor.process(attributes['path'], config)
|
19
|
-
attributes['original'] = image[:original]
|
20
|
-
attributes['resized'] = image[:resized]
|
21
6
|
|
22
|
-
partial = File.read(image_template)
|
23
|
-
template = Liquid::Template.parse(partial)
|
24
7
|
|
25
|
-
result = template.render!(attributes.merge(site.site_payload))
|
26
8
|
|
27
|
-
RenderCache.set(cache_key, result)
|
28
|
-
end
|
29
9
|
|
30
|
-
|
10
|
+
module Jekyll
|
11
|
+
class ResponsiveImage
|
12
|
+
class Block < Liquid::Block
|
13
|
+
include Jekyll::ResponsiveImage::Common
|
14
|
+
|
15
|
+
def render(context)
|
16
|
+
attributes = YAML.load(super)
|
17
|
+
render_responsive_image(context, attributes)
|
31
18
|
end
|
32
19
|
end
|
33
20
|
end
|
@@ -4,15 +4,42 @@ module Jekyll
|
|
4
4
|
include Jekyll::ResponsiveImage::Utils
|
5
5
|
|
6
6
|
def make_config(site)
|
7
|
-
|
7
|
+
ResponsiveImage.defaults.dup
|
8
|
+
.merge(site.config['responsive_image'])
|
9
|
+
.merge(:site_source => site.source, :site_dest => site.dest)
|
10
|
+
end
|
11
|
+
|
12
|
+
def keep_resized_image!(site, image)
|
13
|
+
keep_dir = File.dirname(image['path'])
|
14
|
+
site.config['keep_files'] << keep_dir unless site.config['keep_files'].include?(keep_dir)
|
15
|
+
end
|
16
|
+
|
17
|
+
def render_responsive_image(context, attributes)
|
18
|
+
cache_key = attributes.to_s
|
19
|
+
result = attributes['cache'] ? RenderCache.get(cache_key) : nil
|
20
|
+
|
21
|
+
if result.nil?
|
22
|
+
site = context.registers[:site]
|
23
|
+
config = make_config(site)
|
24
|
+
|
25
|
+
source_image_path = site.in_source_dir(attributes['path'].to_s)
|
26
|
+
image = ImageProcessor.process(source_image_path, config)
|
27
|
+
attributes['original'] = image[:original]
|
28
|
+
attributes['resized'] = image[:resized]
|
29
|
+
|
30
|
+
attributes['resized'].each { |resized| keep_resized_image!(site, resized) }
|
31
|
+
|
32
|
+
image_template = site.in_source_dir(attributes['template'] || config['template'])
|
33
|
+
partial = File.read(image_template)
|
34
|
+
template = Liquid::Template.parse(partial)
|
35
|
+
|
36
|
+
result = template.render!(attributes.merge(site.site_payload))
|
8
37
|
|
9
|
-
# Not very nice, but this is needed to create a clean path to add to keep_files
|
10
|
-
output_dir = format_output_path(config['output_path_format'], config['base_path'], '*', '*', '*')
|
11
|
-
output_dir = "#{File.dirname(output_dir)}/*"
|
12
38
|
|
13
|
-
|
39
|
+
RenderCache.set(cache_key, result)
|
40
|
+
end
|
14
41
|
|
15
|
-
|
42
|
+
result
|
16
43
|
end
|
17
44
|
end
|
18
45
|
end
|
@@ -7,7 +7,10 @@ module Jekyll
|
|
7
7
|
config = make_config(site)
|
8
8
|
|
9
9
|
config['extra_images'].each do |pathspec|
|
10
|
-
Dir.glob(pathspec)
|
10
|
+
Dir.glob(site.in_source_dir(pathspec)) do |path|
|
11
|
+
result = ImageProcessor.process(path, config)
|
12
|
+
result[:resized].each { |image| keep_resized_image!(site, image) }
|
13
|
+
end
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -4,7 +4,7 @@ module Jekyll
|
|
4
4
|
include ResponsiveImage::Utils
|
5
5
|
|
6
6
|
def process(image_path, config)
|
7
|
-
raise SyntaxError.new("Invalid image path specified: #{image_path}") unless File.
|
7
|
+
raise SyntaxError.new("Invalid image path specified: #{image_path}") unless File.file?(image_path)
|
8
8
|
|
9
9
|
resize_handler = ResizeHandler.new
|
10
10
|
img = Magick::Image::read(image_path).first
|
@@ -17,22 +17,24 @@ module Jekyll
|
|
17
17
|
filepath = format_output_path(config['output_path_format'], config['base_path'], image_path, width, height)
|
18
18
|
resized.push(image_hash(config['base_path'], filepath, width, height))
|
19
19
|
|
20
|
+
site_source_filepath = File.expand_path(filepath, config[:site_source])
|
21
|
+
site_dest_filepath = File.expand_path(filepath, config[:site_dest])
|
22
|
+
|
20
23
|
# Don't resize images more than once
|
21
|
-
next if File.exist?(
|
24
|
+
next if File.exist?(site_source_filepath)
|
22
25
|
|
23
|
-
ensure_output_dir_exists!(File.dirname(
|
26
|
+
ensure_output_dir_exists!(File.dirname(site_source_filepath))
|
27
|
+
ensure_output_dir_exists!(File.dirname(site_dest_filepath))
|
24
28
|
|
25
29
|
Jekyll.logger.info "Generating #{filepath}"
|
26
30
|
|
27
31
|
i = img.scale(ratio)
|
28
|
-
i.write(
|
32
|
+
i.write(site_source_filepath) do |f|
|
29
33
|
f.quality = size['quality'] || config['default_quality']
|
30
34
|
end
|
31
35
|
|
32
36
|
# Ensure the generated file is copied to the _site directory
|
33
|
-
|
34
|
-
ensure_output_dir_exists!(File.dirname(site_dest_filepath))
|
35
|
-
FileUtils.copy(filepath, site_dest_filepath)
|
37
|
+
FileUtils.copy_file(site_source_filepath, site_dest_filepath)
|
36
38
|
|
37
39
|
i.destroy!
|
38
40
|
end
|
@@ -15,28 +15,7 @@ module Jekyll
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def render(context)
|
18
|
-
|
19
|
-
result = @attributes['cache'] ? RenderCache.get(cache_key) : nil
|
20
|
-
|
21
|
-
if result.nil?
|
22
|
-
site = context.registers[:site]
|
23
|
-
config = make_config(site)
|
24
|
-
|
25
|
-
image = ImageProcessor.process(@attributes['path'], config)
|
26
|
-
@attributes['original'] = image[:original]
|
27
|
-
@attributes['resized'] = image[:resized]
|
28
|
-
|
29
|
-
image_template = @attributes['template'] || config['template']
|
30
|
-
|
31
|
-
partial = File.read(image_template)
|
32
|
-
template = Liquid::Template.parse(partial)
|
33
|
-
|
34
|
-
result = template.render!(@attributes.merge(site.site_payload))
|
35
|
-
|
36
|
-
RenderCache.set(cache_key, result)
|
37
|
-
end
|
38
|
-
|
39
|
-
result
|
18
|
+
render_responsive_image(context, @attributes)
|
40
19
|
end
|
41
20
|
end
|
42
21
|
end
|
metadata
CHANGED
@@ -1,53 +1,53 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-responsive_image
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Wynn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.0'
|
20
|
-
- - <
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '4.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '2.0'
|
30
|
-
- - <
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '4.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rmagick
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '2.0'
|
40
|
-
- - <
|
40
|
+
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '3.0'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '2.0'
|
50
|
-
- - <
|
50
|
+
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '3.0'
|
53
53
|
description: "\n Jekyll Responsive Images is a Jekyll plugin and utility for automatically
|
@@ -80,17 +80,17 @@ require_paths:
|
|
80
80
|
- lib
|
81
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
90
|
+
version: 1.3.1
|
91
91
|
requirements: []
|
92
92
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
93
|
+
rubygems_version: 2.5.1
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: Responsive images for Jekyll via srcset
|