Class: Jekyll::Tags::ImageEncodeTag
- Inherits:
-
Liquid::Tag
- Object
- Liquid::Tag
- Jekyll::Tags::ImageEncodeTag
- Includes:
- ImageEncodeCache
- Defined in:
- lib/jekyll_image_encode.rb
Instance Method Summary collapse
- #encode_image ⇒ Object
-
#initialize(tag_name, url, options) ⇒ ImageEncodeTag
constructor
A new instance of ImageEncodeTag.
- #render(context) ⇒ Object
Methods included from ImageEncodeCache
#cached_base64_codes, #cached_base64_codes=
Constructor Details
#initialize(tag_name, url, options) ⇒ ImageEncodeTag
Returns a new instance of ImageEncodeTag.
20 21 22 23 |
# File 'lib/jekyll_image_encode.rb', line 20 def initialize(tag_name, url, ) @url = url.strip super end |
Instance Method Details
#encode_image ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/jekyll_image_encode.rb', line 29 def encode_image require 'open-uri' require 'base64' encoded_image = '' image_handle = open(@url) if self.cached_base64_codes.has_key? @url encoded_image = self.cached_base64_codes[@url] else # p "Caching #{@url} as local base64 string ..." encoded_image = Base64.strict_encode64(image_handle.read) self.cached_base64_codes.merge!(@url => encoded_image) end data_type = MimeMagic.by_magic(image_handle) image_handle.close "data:#{data_type};base64, #{encoded_image}" end |
#render(context) ⇒ Object
25 26 27 |
# File 'lib/jekyll_image_encode.rb', line 25 def render(context) encode_image end |