jekyll-image_optimizer 1.0.0 → 1.1.0

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 (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: {}