2014-12-08 00:06:28 +11:00
|
|
|
module Jekyll
|
|
|
|
class ResponsiveImage
|
|
|
|
class Block < Liquid::Block
|
2014-12-08 09:03:26 +11:00
|
|
|
include ResponsiveImage::Utils
|
|
|
|
|
2014-12-08 00:06:28 +11:00
|
|
|
def render(context)
|
|
|
|
config = ResponsiveImage.defaults.dup
|
|
|
|
config.merge!(context.registers[:site].config['responsive_image'])
|
|
|
|
|
|
|
|
attributes = YAML.load(super)
|
|
|
|
image_template = attributes['template'] || config['template']
|
|
|
|
|
|
|
|
resize_handler = ResizeHandler.new
|
|
|
|
img = Magick::Image::read(attributes['path']).first
|
2014-12-08 09:03:26 +11:00
|
|
|
attributes['original'] = image_hash(attributes['path'], img.columns, img.rows)
|
2014-12-08 00:06:28 +11:00
|
|
|
attributes['resized'] = resize_handler.resize_image(img, config)
|
|
|
|
|
|
|
|
partial = File.read(image_template)
|
|
|
|
template = Liquid::Template.parse(partial)
|
|
|
|
|
|
|
|
template.render!(attributes)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|