Extract common image processing into a module
This commit is contained in:
parent
4112992565
commit
ddff9d7cc1
|
@ -7,6 +7,7 @@ require 'rmagick'
|
|||
require 'jekyll/responsive_image/version'
|
||||
require 'jekyll/responsive_image/defaults'
|
||||
require 'jekyll/responsive_image/utils'
|
||||
require 'jekyll/responsive_image/image_processor'
|
||||
require 'jekyll/responsive_image/resize_handler'
|
||||
require 'jekyll/responsive_image/tag'
|
||||
require 'jekyll/responsive_image/block'
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
module Jekyll
|
||||
class ResponsiveImage
|
||||
class Block < Liquid::Block
|
||||
include ResponsiveImage::Utils
|
||||
|
||||
def render(context)
|
||||
config = ResponsiveImage.defaults.dup
|
||||
config.merge!(context.registers[:site].config['responsive_image'])
|
||||
|
@ -10,10 +8,9 @@ module Jekyll
|
|||
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)
|
||||
attributes['resized'] = resize_handler.resize_image(img, config)
|
||||
image = ImageProcessor.process(attributes['path'], config)
|
||||
attributes['original'] = image[:original]
|
||||
attributes['resized'] = image[:resized]
|
||||
|
||||
partial = File.read(image_template)
|
||||
template = Liquid::Template.parse(partial)
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
module Jekyll
|
||||
class ResponsiveImage
|
||||
class ImageProcessor
|
||||
include ResponsiveImage::Utils
|
||||
|
||||
def process(image_path, config)
|
||||
raise SyntaxError.new('Invalid image path specified') unless File.exists?(image_path)
|
||||
|
||||
resize_handler = ResizeHandler.new
|
||||
img = Magick::Image::read(image_path).first
|
||||
|
||||
{
|
||||
original: image_hash(image_path, img.columns, img.rows),
|
||||
resized: resize_handler.resize_image(img, config),
|
||||
}
|
||||
end
|
||||
|
||||
def self.process(image_path, config)
|
||||
self.new.process(image_path, config)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,8 +1,6 @@
|
|||
module Jekyll
|
||||
class ResponsiveImage
|
||||
class Tag < Liquid::Tag
|
||||
include ResponsiveImage::Utils
|
||||
|
||||
def initialize(tag_name, markup, tokens)
|
||||
super
|
||||
|
||||
|
@ -18,10 +16,9 @@ module Jekyll
|
|||
config = ResponsiveImage.defaults.dup
|
||||
config.merge!(context.registers[:site].config['responsive_image'])
|
||||
|
||||
resize_handler = ResizeHandler.new
|
||||
img = Magick::Image::read(@attributes['path']).first
|
||||
@attributes['original'] = image_hash(@attributes['path'], img.columns, img.rows)
|
||||
@attributes['resized'] = resize_handler.resize_image(img, config)
|
||||
image = ImageProcessor.process(@attributes['path'], config)
|
||||
@attributes['original'] = image[:original]
|
||||
@attributes['resized'] = image[:resized]
|
||||
|
||||
image_template = @attributes['template'] || config['template']
|
||||
|
||||
|
|
Loading…
Reference in New Issue