jekyll-responsive-image/lib/jekyll/responsive_image/block.rb

26 lines
790 B
Ruby
Raw Normal View History

2014-12-08 00:06:28 +11:00
module Jekyll
class ResponsiveImage
class Block < Liquid::Block
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
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