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.
18 19 20 21 |
# File 'lib/jekyll_image_encode.rb', line 18 def initialize(tag_name, url, ) @url = url.strip super end |
Instance Method Details
#encode_image ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/jekyll_image_encode.rb', line 27 def encode_image require 'open-uri' require 'base64' encoded_image = '' if self.cached_base64_codes.has_key? @url encoded_image = self.cached_base64_codes[@url] else # p "Caching #{@url} as local base64 string ..." open(@url) do |image| encoded_image = Base64.strict_encode64(image.read) end self.cached_base64_codes.merge!(@url => encoded_image) end "data:image;base64, #{encoded_image}" end |
#render(context) ⇒ Object
23 24 25 |
# File 'lib/jekyll_image_encode.rb', line 23 def render(context) encode_image end |