jekyll-image_optimizer 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll/image_optimizer.rb +60 -4
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1976646dd0f9304e27a9ff4ce3e6bc93af56a67
4
- data.tar.gz: b620a1968b3c3b0cdb8ad2270ea7be8db07bfb8d
3
+ metadata.gz: ede44b92874642f51ae35e6040f96c58ad0717cf
4
+ data.tar.gz: b6256615bd5e2984cb727435d2b306eb6abfa61c
5
5
  SHA512:
6
- metadata.gz: decbd20e523daffcd47e273c85530c6b07e3e8e9fea91b55ad33e42c184eed6d80ac3054d1b0922419482a3c408c1be1ad61d3ba09d23b7c6acba4a1af32de6e
7
- data.tar.gz: ca85d2bc1b365f382f8ea77dc1090f087b9955068d4a144999f59892e8fc07a088b9ee90270ebeda5cb86c251742b3a2c695171137e26ff464b57feb8aebb95c
6
+ metadata.gz: 9622b082d933826853f17f24f03dd039b04a91f97ab021a89f213f4b0510e4063d4ea2b70e6c2627215b0d5f442f7ea81dc1a18da959f4837712e75d0982cde1
7
+ data.tar.gz: 7c6f8aa33b750b9f36d0525d75b98c9730676cb61d308c7e2965a6a90f3747994dad4f25bbc3d1320fb727b590b600d47be7ada2e3ebc33ba8769fbd0be00447
@@ -1,4 +1,9 @@
1
1
  require_relative 'image_optimizer/image_optimizer'
2
+ require 'RMagick'
3
+
4
+ def opt_dir(config)
5
+ config['opt_images'] || 'img/opt'
6
+ end
2
7
 
3
8
  module Jekyll
4
9
 
@@ -7,15 +12,66 @@ module Jekyll
7
12
 
8
13
  def initialize(config)
9
14
  @raw=config['raw_images'] || 'img/raw'
10
- @opt=config['opt_images'] || 'img/opt'
15
+ @opt=opt_dir(config)
11
16
  @symlink=config['images_link'] || 'images'
12
17
  @geometry=config['image_geometry'] || '800x800>'
13
18
  end
14
19
 
15
20
  def generate(site)
16
21
  io=ImageOptimizer.new(@raw, @opt)
17
- io.optimize_images(@geometry)
18
- io.create_symlink(@symlink, @geometry)
22
+ if @geometry.is_a? Enumerable
23
+ @geometry.each { |geom| io.optimize_images(geom) }
24
+ else
25
+ io.optimize_images(@geometry)
26
+ io.create_symlink(@symlink, @geometry)
27
+ end
19
28
  end
20
29
  end
21
- end
30
+
31
+ class SrcsetTag < Liquid::Tag
32
+
33
+ def initialize(tag_name, markup, tokens)
34
+ super
35
+ @markup
36
+ end
37
+
38
+ def render(context)
39
+ s=''
40
+ base_url=context['site']['baseurl']
41
+ index=Liquid::Template.parse(@markup).render(context).to_i
42
+ src=context['page']['image'][index]['url']
43
+ for dir in Dir[opt_dir(context['site'])+'*']
44
+ file = dir+'/'+src
45
+ if File.file? file
46
+ img=Magick::Image::read(file).first
47
+ s+=base_url+'/'+file+' '+img.columns.to_s+'w,'
48
+ end
49
+ end
50
+ s[0..-2]
51
+ end
52
+ end
53
+
54
+ class ImageTag < Liquid::Tag
55
+
56
+ def initialize(tag_name, markup, tokens)
57
+ super
58
+ @index = markup.to_i
59
+ end
60
+
61
+ def render(context)
62
+ context.stack do
63
+ context['image']=context['page']['image'][@index]
64
+ context['image']['index']=@index
65
+ Liquid::Template.parse(File.read(layout(context))).render(context)
66
+ end
67
+ end
68
+
69
+ def layout(context)
70
+ context['site']['image_layout'] || '_layouts/image.html'
71
+ end
72
+ end
73
+ end
74
+
75
+
76
+ Liquid::Template.register_tag('srcset', Jekyll::SrcsetTag)
77
+ Liquid::Template.register_tag('image', Jekyll::ImageTag)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-image_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Niederhauser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-09 00:00:00.000000000 Z
11
+ date: 2015-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rmagick
@@ -34,7 +34,7 @@ files:
34
34
  - lib/jekyll/image_optimizer.rb
35
35
  - lib/jekyll/image_optimizer/image_optimizer.rb
36
36
  - lib/jekyll/image_optimizer/synchronizer.rb
37
- homepage: http://rubygems.org/gems/jekyll-image_optimizer
37
+ homepage: https://github.com/nidi3/jekyll-image_optimizer
38
38
  licenses:
39
39
  - Apache
40
40
  metadata: {}