Merge pull request #71 from decipher-media/master

Add condition to extra image generation to only operate on 'files' re…
This commit is contained in:
Joseph Wynn 2018-06-21 08:13:07 +12:00 committed by GitHub
commit 7a3dbf1ab9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 4 deletions

View File

@ -15,6 +15,25 @@ Feature: Extra image generation
And the file "_site/assets/resized/everybody-loves-jalapeño-pineapple-cornbread-100x50.png" should exist
And the file "_site/assets/resized/progressive-100x50.jpeg" should exist
Scenario: Specifying a recursive glob pattern
Given I have a responsive_image configuration with:
"""
sizes:
- width: 100
extra_images:
- assets/**/*
"""
And I have a file "index.html" with "Hello, world!"
When I run Jekyll
Then the image "assets/resized/everybody-loves-jalapeño-pineapple-cornbread-100x50.png" should have the dimensions "100x50"
And the image "assets/resized/exif-rotation-100x50.jpeg" should have the dimensions "100x50"
And the image "assets/resized/progressive-100x50.jpeg" should have the dimensions "100x50"
And the image "assets/resized/test-100x50.png" should have the dimensions "100x50"
And the file "_site/assets/resized/everybody-loves-jalapeño-pineapple-cornbread-100x50.png" should exist
And the file "_site/assets/resized/exif-rotation-100x50.jpeg" should exist
And the file "_site/assets/resized/progressive-100x50.jpeg" should exist
And the file "_site/assets/resized/test-100x50.png" should exist
Scenario: Honouring Jekyll 'source' configuration
Given I have copied my site to "sub-dir/my-site-copy"
And I have a configuration with:

View File

@ -2,6 +2,7 @@ module Jekyll
module ResponsiveImage
class ExtraImageGenerator < Jekyll::Generator
include Jekyll::ResponsiveImage::Utils
include FileTest
def generate(site)
config = Config.new(site).to_h
@ -9,11 +10,13 @@ module Jekyll
config['extra_images'].each do |pathspec|
Dir.glob(site.in_source_dir(pathspec)) do |image_path|
path = Pathname.new(image_path)
relative_image_path = path.relative_path_from(site_source)
if FileTest.file?(image_path)
path = Pathname.new(image_path)
relative_image_path = path.relative_path_from(site_source)
result = ImageProcessor.process(relative_image_path, config)
result[:resized].each { |image| keep_resized_image!(site, image) }
result = ImageProcessor.process(relative_image_path, config)
result[:resized].each { |image| keep_resized_image!(site, image) }
end
end
end
end