Guest User

Untitled

a guest
Feb 19th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. module Image
  2. class ImageTag < Liquid::Tag
  3. require 'RMagick'
  4.  
  5. SYNTAX = /(?:'|")([^ ]+)(?:'|")\s?(?:(?:'|")(.+)(?:'|"))*/
  6.  
  7. def initialize(tag_name, markup, tokens)
  8. super
  9. if markup =~ SYNTAX
  10. @url = $1
  11. @alt = $2 if defined? $2
  12. else
  13. raise SyntaxError.new("Syntax Error in 'image' - Valid syntax: image <url> [alt]")
  14. end
  15. end
  16.  
  17. def render(context)
  18. image = Magick::Image.read("#{context.registers[:site].dest}/#{@url}").first
  19. @alt = " alt=\"#{@alt}\"" unless @alt.nil?
  20.  
  21. "<img src=\"#{@url}\" width=\"#{image.columns}\" height=\"#{image.rows}\"#{@alt} />"
  22. end
  23. end
  24. end
  25.  
  26. Liquid::Template.register_tag('image', Image::ImageTag)
Add Comment
Please, Sign In to add comment