jekyll_image_encode 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/jekyll_image_encode.rb +49 -0
  2. metadata +47 -0
@@ -0,0 +1,49 @@
1
+ module ImageEncodeCache
2
+ @@cached_base64_codes = Hash.new
3
+
4
+ def cached_base64_codes
5
+ @@cached_base64_codes
6
+ end
7
+
8
+ def cached_base64_codes= val
9
+ @@cached_base64_codes = val
10
+ end
11
+ end
12
+
13
+ module Jekyll
14
+ module Tags
15
+ class ImageEncodeTag < Liquid::Tag
16
+ include ImageEncodeCache
17
+
18
+ def initialize(tag_name, url, options)
19
+ @url = url.strip
20
+ super
21
+ end
22
+
23
+ def render(context)
24
+ encode_image
25
+ end
26
+
27
+ def encode_image
28
+ require 'open-uri'
29
+ require 'base64'
30
+
31
+ encoded_image = ''
32
+
33
+ if self.cached_base64_codes.has_key? @url
34
+ encoded_image = self.cached_base64_codes[@url]
35
+ else
36
+ # p "Caching #{@url} as local base64 string ..."
37
+ open(@url) do |image|
38
+ encoded_image = Base64.encode64(image.read)
39
+ end
40
+ self.cached_base64_codes.merge!(@url => encoded_image)
41
+ end
42
+
43
+ "data:image;base64, #{encoded_image}"
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ Liquid::Template.register_tag('base64', Jekyll::Tags::ImageEncodeTag)
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll_image_encode
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - GSI
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-10 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Jekyll tag that renders base64 codes of images fetched from the web
15
+ email: 2013@groovy-skills.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/jekyll_image_encode.rb
21
+ homepage: https://github.com/GSI/jekyll_image_encode
22
+ licenses:
23
+ - MIT
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.24
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Jekyll Image Encode
46
+ test_files: []
47
+ has_rdoc: